【发布时间】:2013-12-03 09:31:40
【问题描述】:
我不明白为什么我必须这样做:
subject { lambda { JenkinsClient.new(params.tap{|p| p.delete(:password)}) } }
it { expect { subject.call }.to raise_error(ArgumentError) }
要让它捕获引发的异常,而不是:
subject { JenkinsClient.new(params.tap{|p| p.delete(:password)}) }
it { expect { subject }.to raise_error(ArgumentError) }
有人可以提供对此的见解吗?
【问题讨论】:
-
为了清楚起见,您是说第二个示例(没有 lambda)不起作用吗?你得到什么例外?
-
我在运行代码时收到 ArgumentError 异常,因此它无法按预期工作。引发错误并停止测试,但未被捕获。
标签: ruby exception rspec assertions