我知道用@BeforeAll和@AfterAll JUnit 5注解注解的方法应该是static,除非使用TestInstance.Lifecycle.PER_CLASS。我不明白的是,* 为什么 * JUnit 5会有这样的限制?如果PER_CLASS生命周期允许这样做,那么在使用PER_METHOD时会发生什么巨大的变化?先谢谢你。
@BeforeAll
@AfterAll
static
TestInstance.Lifecycle.PER_CLASS
PER_CLASS
PER_METHOD
x3naxklr1#
当您使用PER_METHOD时,会为每个测试方法创建一个测试类的新示例。使用@BeforeAll注解的方法需要在创建任何示例之前调用。同样,@AfterAll需要在所有测试完成之后调用,因此不再有可用的示例。缺少示例意味着这些方法需要是静态的。
1条答案
按热度按时间x3naxklr1#
当您使用
PER_METHOD
时,会为每个测试方法创建一个测试类的新示例。使用@BeforeAll
注解的方法需要在创建任何示例之前调用。同样,@AfterAll
需要在所有测试完成之后调用,因此不再有可用的示例。缺少示例意味着这些方法需要是静态的。