2017-02-27 1 views
0

예외를 발생시키는 간단한 Rails 메일러가있는 경우 예외가 발생했음을 확인하는 rspec 사양을 작성하려면 어떻게해야합니까? 그것은 참으로 "푸"을 제기 않습니다 꽤 분명, 메일러 메소드가 호출됩니다 때마다,Rspec에서 메일러가 오류를 발생시키는 것을 테스트하는 방법은 무엇입니까?

expected Exception with "wtf" but nothing was raised 

그러나 :

# 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 

는 결과를 제공합니다.

(이이를 파악의 목적을 위해 의도적으로 실패 사양이지만, 나는 그것이 잘못된 오류가 예를 들어, '푸'대신에 '무슨 일'을 PF 제기 된보고 기대했다. 그러나 그것은 오류가 발생하지 않았다 말한다 .) 나는 3.5.4

답변

1

사양에 deliver_now 추가 레일 5.0.1 RSpec에 사용하고

:

StatusMailer.simple_message("[email protected]", "a subject", "a message").deliver_now 
+0

DOH, 그래, 예외는 배달이 시도 될 때까지 발생되지 않을 것이다 . – jpwynn

관련 문제