非回帰テストを作成して、一時的なコンポーネントが適切にリリースされていることを検証したいと考えています。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を返しますが、コンテナーをデバッグ モードで見ると、コンポーネントが適切に追跡されていることがわかります。何故ですか?そのようなテストについて何か提案はありますか?
助けてくれてありがとう