1

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

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

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

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

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

4

1 回答 1

1

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

GC.KeepAlive(weakObject)

完整参考这里。

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

于 2013-03-13T04:17:21.393 回答