JUnit 5 中的扩展生命周期和状态

Ser*_*iev 5 junit5 junit5-extension-model

用户指南包含以下内容:

通常,扩展仅实例化一次。

不是很清楚什么时候extension可以实例化多次?我支持具有多个扩展的测试套件,每个扩展都将其状态存储在类字段中。一切正常,但我可以依赖于此还是应该重构此代码以使用 ExtensionContext.Store?

Joj*_*GME 0

\n

通常,扩展仅实例化一次。因此,问题变得相关:如何从一次扩展调用到下一次调用保持状态?

\n
\n

我认为这句话应该强调扩展的同一实例可以重复用于多个测试。我怀疑该实例可能会在测试过程中被替换。

\n

当测试使用编程扩展注册(使用@RegisterExtension)时,可能会实例化扩展的多个实例。在这种情况下,测试类会创建自己的扩展实例。JUnit 无法在其他测试类中重用此实例。但是通过声明性扩展注册(使用)创建的实例@ExtendWith可以用于多个测试类。

\n