【发布时间】:2012-07-03 22:16:31
【问题描述】:
我有一个非常奇怪的 rspec 案例场景。我试图测试我的函数是否正确处理异常。以下是我的代码:
在 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 中消失了。看看这对你有没有影响
标签: ruby-on-rails rspec