Contents

为了每个test方法独立的执行和避免不可变单元测试非预期的副作用,junit在每个方法执行前创建一个测试实例。
如果你想jupiter执行所有方法在相同的测试实例,在你的测试类上添加注解 @TestInstance(Lifecycle.PER_CLASS)。如果使用这种模式,每个测试类将生成一个测试实例。因此如果你的测试方法依赖实例状态,你可能需要在@BeforeEach @AfterEach重置状态。
“per-class“ 模式有一些额外的好处对比默认的“per-method”模式。尤其,“per-class”通过接口模式方法可以使用非静态方法实现@BeforeAll @AfterAll。“per-class在@Nested测试类里也可以实现@BeforeAll 和@AfterAll

Contents