Minitest stub_any_instance 和方法?

Minitest stub_any_instance and methods?

如果我这样做

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

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

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

用 lambda 包裹 raise

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

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