【问题标题】:Extension lifecycle and state in JUnit 5JUnit 5 中的扩展生命周期和状态
【发布时间】:2019-05-08 06:22:34
【问题描述】:

用户指南包含以下内容:

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

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

【问题讨论】:

  • 好问题!也许在 github repo 中询问?

标签: junit5 junit5-extension-model


【解决方案1】:

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

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

当测试使用programmatic extension registration(使用@RegisterExtension)时,可能会实例化扩展的多个实例。在这种情况下,测试类会创建自己的扩展实例。 JUnit 不能在其他测试类中重用这个实例。但是declarative extension registration(与@ExtendWith)创建的实例可能用于多个测试类。

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 2012-06-03
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多