クラス内のテストに固有のセットアップがいくつかあります。私のテストに固有なので、私はテスト機能の上に追加しました。クリーンアップは、テスト機能の最後に追加されます。テストが失敗し、クリーンアップが実行されない問題。私のテスト機能に特化したカスタムティアダウンを指定するPHPUnitの方法はありますか?私はteardownAfterClassとtearDownを指定するPHPUnitのマニュアルを見ましたが、どちらも私の問題を解決しません。関数teardownAfterClassは、クラスの最後に1回だけ実行されます。各テストの後に関数teardownが実行されますが、特定のテスト関数が実行されなかった場合、クリーンアップを実行したくありません。phpunit私のテストに特化したカスタムティアダウン
私のテストでカスタムティアダウン機能を作成するPHPUnitの方法は何ですか?
ここでは、テストに固有のクリーンアップが常に発生することを確認するために使用するコードですが、実際のテストを別の関数に入れてtry/catchブロックを必要とするので醜いです。 PHPUnit固有の処理方法はありますか?関数に特有のdataProviderのようなものは素晴らしいでしょう。失敗や成功に関係なく、テストの後に常に実行されます。
class testClass {
public function test1() {
self::setupSpecificToTest1();
try {
// actual test without cleanup
$this->_test1();
} catch (Exception $e) {
self::cleanupSpecificToTest1();
throw $e;
}
self::cleanupSpecificToTest1();
}
public function test2() {
// some code which does not need any setup or cleanup
}
private function _test1() {
// some test code
}
}
を、あなたはこの方法自体に、あるいは単に手動でクリーンアップメソッドを呼び出すことを扱うほうが良いです。 –
関数の最後に手動でクリーンアップメソッドを呼び出す際の問題は、例外/テストの失敗の場合に呼び出しを取得しないことです。 –
あなたの状況をよりよく扱う方法があるかもしれないので、私はあなたのテストのコードを投稿することをお勧めします。 –