本当に奇妙な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)
、それも合格しました。洞察はありますか?