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



我知道用@BeforeAll@AfterAll注释的方法JUnit 5应该是static,除非使用TestInstance.Lifecycle.PER_CLASS

我不能理解的是为什么JUnit 5会施加这样的限制?如果允许使用PER_CLASS生命周期,那么在使用PER_METHOD时会发生什么变化?

提前谢谢。

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

最新更新