使用WeakReference进行单元测试代码

时间:2013-02-25 07:51:02

标签: c# unit-testing weak-references

我没有创建框架,但我需要为它编写测试。场景......

  • 它使用WeakReference来保存一个对象,我调用一个基本方法来为它分配对象(BaseClass.Register(weakObject))
  • 我可以通过方法(BaseClass.GetObject())
  • 检索该对象
  • 测试它......我必须首先注册我的mock(BaseClass.Register(mockWeak.Object))

当执行一个依赖于注册对象的方法时,我的测试有时会失败,因为在我对它进行测试之前它已被垃圾收集。

我可以做些什么来阻止GC收集我的WeakReference对象吗?

注意:框架(BaseClass)中不应该进行任何更改,只能在我的测试类

中进行

1 个答案:

答案 0 :(得分:1)

抱歉,我找到了答案......在测试过程中你应该使用......

GC.KeepAlive(weakObject)

此处完全参考。

http://defragdev.com/blog/?p=129