我正在编写JUnit4测试,其中我正在使用TemporaryFolder规则.似乎它对@Rule和@ClassRule都很好.Junit @Rule和@ClassRule有什么区别?我为什么要使用一个而不是另一个?
sli*_*lim 67
当一个类中有多个测试方法时,区别就变得清晰了.
A 在任何测试方法之前运行@ClassRule
其before()
方法.然后运行所有测试方法,最后运行规则的after()
方法.因此,如果一个类中有五个测试方法,before()
并且after()
每个测试方法仍然只运行一次.
@ClassRule
适用于静态方法,因此具有固有的所有限制.
A @Rule
导致测试通过规则的apply()
方法运行,该方法可以在运行目标方法之前和之后执行操作.如果您有五种测试方法,apply()
则会将规则调用五次,作为每种方法的包装器.
使用@ClassRule
设置的东西,可以通过所有的测试方法可以重复使用,如果你能做到这一点的静态方法.
使用@Rule
设置一些需要被重新创建,或重置,每个测试方法.
归档时间: |
|
查看次数: |
19383 次 |
最近记录: |