2013-02-25 100 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