Ho avuto uno scenario caso rspec davvero strano. Ho provato a verificare se la mia funzione gestisce correttamente l'eccezione. E il seguente è il mio codice:RSpec per should_receive e should_not_receive entrambi passati per Exception
in User.rb:
def welcome_user
begin
send_welcome_mail(self)
rescue Exception => exception
ErrorMessage.add(exception, user_id: self.id)
end
end
end
in 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
Il test è stato superato, ma quando cambio ErrorMessage.should_receive(:add)
-ErrorMessage.should_not_receive(:add)
, passò anche, qualche intuizione?
ho incontrato un test con la stessa cosa, ma va via con rspec 2.11. Vedi se questo fa la differenza per te – prusswan