0
鑑於一個引發異常的簡單Rails郵件程序,我該如何編寫一個rspec規範來確認引發異常?在Rspec中,如何測試一個梅勒引發錯誤?
# status_mailer.rb
...
def simple_message(addr, subject, msg_text)
raise "Foo"
end
...
和
#status_mailer_spec.rb
RSpec.describe StatusMailer, type: :mailer do
describe "simple_message" do
it "always raises exception" do
expect{
StatusMailer.simple_message("[email protected]", "a subject", "a message")
}.to raise_error("wtf")
end
end
end
給出結果:
expected Exception with "wtf" but nothing was raised
但是,漂亮很明顯,無論何時郵件方法被調用,它確實提高 「富」。
(這是一個故意失敗的規範,目的是爲了弄清楚這一點,但我期望它報告錯誤錯誤被提出,例如'Foo',而不是'wtf'。 。)
我用Rails 5.0.1和3.5.4 Rspec的
衛生署,是的,異常不會被拋出,直到分娩嘗試。 – jpwynn