5

用户指南包含以下内容:

通常,一个扩展只被实例化一次。

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

4

1 回答 1

0

通常,一个扩展只被实例化一次。所以问题变得相关:你如何保持状态从一次扩展调用到下一次?

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

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

于 2020-11-01T18:15:10.277 回答