2

ユニット テストの親 Base クラスと、ベース クラスを拡張する一連のユニット テストがあります。失敗したすべてのテストで特定のメソッドを呼び出すようにします。「フック」などをどこかに作成することは可能です。つまり、テストに合格するとこのメソッドは呼び出されませんが、テストに失敗すると実行の最後に呼び出されます。

4

1 に答える 1

5

TestWatcher クラスを確認する必要があります。TestWatcher を拡張する独自のクラスを作成し、failed(Throwable e, Description description) メソッドをオーバーライドして、テストにルールを追加します。

public class MyWatcher extends TestWatcher {
    @Override
    protected void failed(Throwable e, Description description) {
         callMyMethod();
    }
}

あなたのテスト:

public class MyTest {
      @Rule 
      public MyWatcher rule = new MyWatcher ();

      @Test
      public myTest(){...}
}

starting() や finished() など、TestWatcher にも便利なメソッドがあります。

于 2012-11-21T11:23:57.557 に答える