根据此文章的第八步,我编写了以下简单的单元测试来确保我的Test
类不会导致内存泄漏:
private class TestClass
{
}
[TestMethod]
public void MemoryLeakTest()
{
vat testObj = new TestClass();
var weakRef = new WeakReference(testObj)
testObj = null;
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Assert.IsFalse(weakRef.IsAlive);
}
在我的代码存储库的主分支中测试通过,但当我在另一个特性分支上运行测试时,测试失败了。因此我有两个问题:
- 这种方法可靠地检测我的类的内存泄漏吗?
- 什么条件会导致该测试在一个分支中通过,在另一个分支中失败?