我想为实现IDisposable的类编写单元测试。该课程有许多私人领域也实施IDisposable。在我的测试中,我想验证当我拨打Dispose()
时,它在所有IDisposable字段上正确调用Dispose()
。本质上,我想我的单元测试看起来像这样:如何使用反射进行单元测试Dispose()?
var o = new ObjectUnderTest();
o.Dispose();
Assert.IsFalse(ObjectHasUndisposedDisposables(o));
我想用反射来实现这一点。这似乎是一个相当普遍的要求,但我找不到任何例子。
有人试过吗?
编辑 - 我不想将一次性用品注入被测试的课堂。
''o.IsDisposed?在你的情况大概:''Assert.IsTrue(o.IsDispoed);'' –
我建议使用依赖注入容器。管理一次性依赖关系只是一个好处。如果你的类创建了更多的需要跟踪和处理的依赖关系,那么它不依赖于抽象。有了DI,你的课程只需要依靠“IWhatever”。它不知道或不在乎该班是否可以丢弃。 –