2011-08-11 12 views
18

RSpecテストを実行しようとしていますが、afterメソッドでテストが失敗したかどうかを検出したいと考えています。私は今、この権利のようなものを持っている:各メソッドの後でRspecテストの失敗を検出します

after(:each) do 
    cc = ConnectController.new() 
    cc.update(<TEST-SERVER-CONTROLLER>, <TC-RESULT-ID>, result?)  
end 

あなたが見ることができるように、result?機能は、私は、交換するテストが失敗したかどうかを検出するために、また、失敗したテストに関する情報を取得するために必要なものです。

答えて

12

EDIT:この回答はRSpec 2でのみ有効です.RSpec 3については、geekazoidの回答をご覧ください。ダニエルの答えに加えて

after(:each) do 
    if example.exception != nil 
    # Failure only code goes here 
    end 
end 
15

、Rspec3に例の方法をした

exampleを公開し、あなたは以下のようなものをexampleexception方法を確認することで障害を検出することができ、クラスのコンテキスト内の各ブロックの実行後にザ・削除されました(詳細はhereを参照)。

あなたはこのような何かをする必要があります:私はafter(:context)/after(:all)ブロックにグループ内のすべての例については、成功かどうかを確認する方法を探していた

after(:each) do |example| 
    if example.exception 
    # ... 
    end 
end 
0

。ここに私が思いついたことがあります:

関連する問題