0

如果我做

Klass.stub_any_instance(:new, raise(RuntimeError) do
  ...
end

RuntimeError 在 stub_any_instance 行引发,而不是像我希望的那样,稍后在发生 Klass.new() 时引发。

有没有办法按照我想要的方式进行这项工作?

4

1 回答 1

0

将 包裹raise在 lambda 中:

Klass.stub :new, -> { raise(RuntimeError) } do
  assert_raise { Klass.new }
end

(您还需要使用stub而不是stub_any_instance.)

于 2017-02-28T11:23:23.343 回答