@Rule: 在JUnit4中利用Rule

时间:2022-01-24 05:07:00

  @Rule是JUnit4的新特性。利用@Rule我们可以扩展JUnit的功能,在执行case的时候加入测试者特有的操作,而不影响原有的case代码:减小了特有操作和case原逻辑的耦合。譬如说我们要重复测试某个test方法,当然我们可以在@Test方法里面写循环。但是如果想把循环和测试逻辑分开就可以利用@Rule。我们先实现org.junit.rules.MethodRule接口做实循环逻辑,然后把实例放在testcase里面即可:

  需要注意的是整个循环都算做1个case,如果有一个循环发生fail或者exception都算作fail或者exception。当然,利用@Rule还可以做其他的事情。JUnit4自身就提供了几个现成的实现:

@Rule: 在JUnit4中利用Rule

  @Rule还支持同时应用多个Rule。譬如您除了要对TestDemo.test1()进行循环5次,而且还要在每次case完成的时候打印一下就可以再引用一个Rule。这次我们可以扩展已有的org.junit.rules.TestWatchman: