我想编写一个非回归测试来验证瞬态组件是否已很好地释放。有些是通过 ctor 中的直接注入创建的,有些是通过类型化工厂创建的。我以为我可以这样做:
// Given
var rootComponent = container.Resolve<IRootComponent>();
var c1 = rootComponent.C1;
var c2 = c1.C2;
etc.
Assert.True(Container.Kernel.ReleasePolicy.HasTrack(c1));
Assert.True(Container.Kernel.ReleasePolicy.HasTrack(c2));
// When
c1.Close();
// Then
Assert.False(Container.Kernel.ReleasePolicy.HasTrack(c1));
Assert.False(Container.Kernel.ReleasePolicy.HasTrack(c2));
HasTrack() 总是返回false,尽管如果我在调试模式下查看容器,我可以看到我的组件被很好地跟踪。这是为什么?你对这样的测试有什么建议吗?
谢谢你的帮助