use*_*045 2 c# testing garbage-collection
我正在编写一些代码来删除一个对象,并希望进行单元测试以确保始终删除该对象.做这个的最好方式是什么?如果GC要工作,你不应该持有任何参考,那么如何在没有参考的情况下进行测试?
小智 6
在一般情况下,无法测试对象是否被丢弃.
WeakReference可能是您正在寻找的东西.您可以在测试过程中创建WeakReference,并在代码运行之后:
WeakReference wr = new WeakReference(obj);
GC.Collect();
Assert.IsTrue(!wr.IsAlive);
Run Code Online (Sandbox Code Playgroud)