2013-02-25 91 views
1

我没有创建框架,但我需要为它编写测试。该方案...WeakReference的单元测试代码

  • 它使用的WeakReference持有的对象,还有,我打电话给指定对象给它(BaseClass.Register(weakObject))基本方法
  • 我可以通过一种方法检索该对象(BaseClass.GetObject())
  • 测试吧...我不得不注册我的模拟(BaseClass.Register(mockWeak.Object))第一

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

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

注:没有变化应在框架(BaseClass的),只能在我的测试类来完成

+0

保持一个非弱引用(又名引用)也潜伏在附近?人们通常在正确测试想要收集对象的场景时遇到更多麻烦。 – 2013-02-25 08:15:09

+0

这将有助于查看测试代码和待测试代码。 – levelnis 2013-02-25 08:33:15

回答

1

对不起,我找到了答案,这...在测试过程中,你应该充分利用...

GC.KeepAlive(weakObject) 

此处全面参考。

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