【问题标题】:ZenjectUnitTestFixture is not recreating singletons after [Setup]ZenjectUnitTestFixture 在 [Setup] 之后没有重新创建单例
【发布时间】:2021-06-01 02:55:50
【问题描述】:

我正在为 Extenject (Zenject) 编写单元测试并使用 ZenjectUnitTestFixture,但看起来我的一些单例在测试 [Setup] 后没有被重新创建。我设置了断点并检查了容器注册是否被重置。但是,其中一个注入的单例中有一个字典,该字典在创建时被初始化,并且仅在第一次测试时才被初始化。对于后续测试,它仍然具有先前测试的内容。有谁知道为什么我的单身人士还在闲逛?我会认为这是一个参考问题,就像仍然有对我的单例的引用,所以即使容器重置实例仍然存在,但我认为即使在这种情况下,重置容器也会注入新的单例实例。有人对我可以从哪里开始寻找有任何建议吗?我绝对可以在我的单例中添加一些东西,让我在每次测试开始时重置它,但我担心如果我的测试中的其他单例发生这种情况,该实例不会重新创建。

【问题讨论】:

    标签: c# unit-testing unity3d dependency-injection zenject


    【解决方案1】:

    这最终不是 Zenject 的问题。我引用了以前被重用的实例。您要确保在安装程序运行后不重用对先前实例的引用。以前的实例不会设置为 null。它们仍然可用,因此您需要在安装程序运行后更新对新的 resolve 调用的所有引用。

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2012-03-02
      • 2016-03-25
      • 1970-01-01
      相关资源
      最近更新 更多