你能简单解释一下吗@TestInstance
注释以及它在 JUnit 5 中有何用处?
我认为我们可以通过以下方式达到相同的效果使我们的领域static
.
I think the docs https://junit.org/junit5/docs/current/user-guide/#writing-tests-test-instance-lifecycle提供有用的总结:
如果您希望 JUnit Jupiter 在同一个测试实例上执行所有测试方法,只需使用 @TestInstance(Lifecycle.PER_CLASS) 注释您的测试类。使用此模式时,每个测试类都会创建一个新的测试实例。因此,如果您的测试方法依赖于存储在实例变量中的状态,您可能需要在 @BeforeEach 或 @AfterEach 方法中重置该状态。
与默认的“每个方法”模式相比,“每个类”模式有一些额外的好处。具体来说,使用“每类”模式,可以在非静态方法以及接口默认方法上声明 @BeforeAll 和 @AfterAll。因此,“每类”模式还可以在 @Nested 测试类中使用 @BeforeAll 和 @AfterAll 方法。
但是您可能已经读过,并且您的想法是正确的,将字段设置为静态将与将该字段声明为实例变量并使用相同的效果@TestInstance(Lifecycle.PER_CLASS)
.
因此,也许“它在 JUnit 5 中有何用处”这个问题的答案是使用@TestInstance
...
- 明确表达您的意图。可以假设 static 关键字的使用是偶然的,而使用
@TestInstance
不太可能是偶然的或轻率的复制粘贴的结果。
- 将管理范围和生命周期以及清理的责任委托给框架,而不必记住自己管理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)