2016-10-26 1 views
1

以下のアサーションが生成されます.や、PHPUnitが実行されF:私は、テスト自体の中にアサーションの結果を知りたいと思っ実行時にアサーションの結果をPHPUnitで確認する方法はありますか?

$this->assertEquals('foo', $bar); 

しかし、どのような場合には?似た何か:

if ($this->assertEquals('foo', $bar)) { 
    // log or do something 
} else { 
    // do something else 
} 

は条件付きでアサーション(または多分そこにある)を実行するためには良い理由はおそらくありませんが、これはビューのデバッグの観点から、純粋に質問です。

答えて

1

PHPUnitは、テストが失敗したことを示すために例外を使用します。

assertEquals()コードを実行すると、on line 137 of isEqual.phpが表示され、オペランドが等しくない場合はPHPUnit_Framework_ExpectationFailedExceptionがスローされます。テストランナーはコンソール出力のためにこれを "F"に変換し、レポートなどのためにもifを使用します。

あなたはあなたのテストケースであなたが好きなことをすることができます。まだテストを失敗させたい場合は、再試行することができます。

try { 
    $this->assertEquals('foo', $bar); 
    // do something else 
} catch (PHPUnit_Framework_ExpectationFailedException $e) { 
    // log or do something 
    throw $e; // rethrow to make sure that the test still fails 
} 
+0

これは正しい回答の書き方です。 – aalaap

関連する問題