Junit 为spock创建自定义测试规则
我正在使用Spock对groovy进行测试,我想要一个失败时的自定义测试规则。首先,我用MethodRule做了这件事,现在已经不推荐了。所以我尝试了TestWacher,但Spock在我的规则能够缓存异常之前缓存了异常Junit 为spock创建自定义测试规则,junit,spock,Junit,Spock,我正在使用Spock对groovy进行测试,我想要一个失败时的自定义测试规则。首先,我用MethodRule做了这件事,现在已经不推荐了。所以我尝试了TestWacher,但Spock在我的规则能够缓存异常之前缓存了异常 public class SimpleOnFailed extends TestWatcher { @Override protected void failed(Throwable e, Description description) {
public class SimpleOnFailed extends TestWatcher {
@Override
protected void failed(Throwable e, Description description) {
print "Prints when test fails"
}
}
它从不从失败的方法中打印我的print语句。Spock和
TestRule
抛出异常有一个已知的问题,这不容易修复,因为Spock的语义在这方面与JUnit不同。(如果您对详细信息感兴趣,可以在上找到更多信息。)解决方案是使用MethodRule
(在最新的JUnit中不再被弃用)或编写Spock扩展。后者还没有被认为是一个稳定的SPI,但是如果您能够接受潜在的变化,那么可以看看Spock代码库()中的扩展 感谢您的回答,因此我将坚持使用MethodRule