为什么用@BeforeAll和@AfterAll标注的方法在JUnit 5中应该是静态的?

jucafojl  于 2022-11-11  发布在  其他
关注(0)|答案(1)|浏览(172)

我知道用@BeforeAll@AfterAll JUnit 5注解注解的方法应该是static,除非使用TestInstance.Lifecycle.PER_CLASS
我不明白的是,* 为什么 * JUnit 5会有这样的限制?如果PER_CLASS生命周期允许这样做,那么在使用PER_METHOD时会发生什么巨大的变化?
先谢谢你。

x3naxklr

x3naxklr1#

当您使用PER_METHOD时,会为每个测试方法创建一个测试类的新示例。使用@BeforeAll注解的方法需要在创建任何示例之前调用。同样,@AfterAll需要在所有测试完成之后调用,因此不再有可用的示例。缺少示例意味着这些方法需要是静态的。

相关问题