gpt4 book ai didi

ruby-on-rails - RSpec的should_receive和should_not_receive都通过了异常传递

转载 作者:行者123 更新时间:2023-12-04 03:59:22 25 4
gpt4 key购买 nike

我有一个非常奇怪的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暴露了我的一项测试来表现出这种“异常”,所以我决定在github上提出这个问题。您可以在https://github.com/rspec/rspec-mocks/issues/164上关注讨论

摘要:any_instance.should_not_receive是未定义的,请避免

关于ruby-on-rails - RSpec的should_receive和should_not_receive都通过了异常传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11319975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com