1

私はフレームワークを作成しませんでしたが、テストを書く必要があります。シナリオは...

  • WeakReference を使用してオブジェクトを保持します。オブジェクトを割り当てるために呼び出す基本メソッドがあります (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 に答える