我正在编写一些代码来删除对象,并希望进行单元测试以确保始终删除该对象。做这个的最好方式是什么?如果要使用GC,你不应该持有任何参考文献,那么如何在没有参考的情况下进行测试?
答案 0 :(得分:5)
在一般情况下,无法测试是否处置了对象。
WeakReference可能就是你要找的东西。您可以在测试过程中创建WeakReference,并在代码运行完毕后创建:
WeakReference wr = new WeakReference(obj);
GC.Collect();
Assert.IsTrue(!wr.IsAlive);