鉴于一个引发异常的简单Rails邮件程序,如何编写确认引发异常的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("a@example.com", "a subject", "a message")
}.to raise_error("wtf")
end
end
end
给出结果:
expected Exception with "wtf" but nothing was raised
但是,很明显,每当调用邮件程序方法时,它确实会引发" Foo"。
(这是一个故意失败的规范,目的是解决这个问题,但我希望它报告错误错误,例如,' Foo'而不是pf&# 39; wtf'但它表示没有引起任何错误。)
我使用的是Rails 5.0.1和Rspec 3.5.4
答案 0 :(得分:1)
在规范中添加deliver_now
:
StatusMailer.simple_message("a@example.com", "a subject", "a message").deliver_now