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