2

我们有一个单元测试父基类,以及一组扩展基类的单元测试。我希望每个失败的测试都调用一个特定的方法。是否可以在某处创建“钩子”或其他东西,即通过测试不会调用此方法,但失败的测试会在执行结束时调用。

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(){...}
}

TestWatcher 中也有有用的方法,比如starting() 和finished()

于 2012-11-21T11:23:57.557 回答