0

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

4

1 回答 1

0

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

于 2021-03-03T23:31:35.250 回答