朱尼特@Rule和@ClassRule
我正在编写JUnit4测试,其中我正在使用临时文件夹规则。它似乎适用于@Rule和@ClassRule。Junit @Rule 和 @ClassRule 有什么区别?为什么我应该使用一个而不是另一个?
我正在编写JUnit4测试,其中我正在使用临时文件夹规则。它似乎适用于@Rule和@ClassRule。Junit @Rule 和 @ClassRule 有什么区别?为什么我应该使用一个而不是另一个?
当一个类中有多个测试方法时,区别就会变得很明显。
A 的方法在任何测试方法之前运行。然后运行所有测试方法,最后运行规则的方法。因此,如果一个类中有五个测试方法,并且每个方法仍然只能运行一次。@ClassRule
before()
after()
before()
after()
@ClassRule
适用于静态方法,因此具有其固有的所有限制。
导致测试通过规则的方法运行,该方法可以在运行目标方法之前和之后执行操作。如果您有五个测试方法,则规则被调用五次,作为每个方法的包装器。@Rule
apply()
apply()
用于设置可由所有测试方法重用的内容(如果可以在静态方法中实现)。@ClassRule
用于设置需要为每个测试方法创建新的或重置的内容。@Rule
无法将@Rule设置为在@BeforeClass之前运行。
虽然@ClassRule必须采用静态方法。