针对exception传递的should_receive和should_not_receive的RSpec
我有一个非常奇怪的rspec情况。 我试图测试我的函数是否正确处理exception。 以下是我的代码:
在User.rb中:
def welcome_user begin send_welcome_mail(self) rescue Exception => exception ErrorMessage.add(exception, user_id: self.id) end end end
在user_spec.rb中
it "adds to error message if an exception is thrown" do mock_user = User.new mock_user.stub(:send_welcome_mail).and_raise(Exception) ErrorMessage.should_receive(:add) mock_user.welcome_user end
测试通过,但是当我将ErrorMessage.should_receive(:add)
更改为ErrorMessage.should_not_receive(:add)
,它还通过了任何见解?
由于rspec 2.11暴露了我的一个测试以表现出这样的“exception”,我决定在github上提出这个问题。 您可以通过https://github.com/rspec/rspec-mocks/issues/164进行讨论
简介 :any_instance.should_not_receive未定义,避免
您可以尝试使用的是.should_receive
与.never
一起.never
:
ErrorMessage.should_receive(:add).never