2011-01-11 11 views
1

基本的には、クラスのシングルトンインスタンスを取得するユニットテストがあります。私のテストの中には、このシングルトンを模倣する必要があったので、私がFooを実行するときに、インスタンスのインスタンスを取得しました。C#ユニットテスト:レイジー<T> .ValueCreatedをfalseに設定するにはどうすればよいですか?

問題は、私の小切手が個別に渡っているが、1つのテストが別のテストと干渉しているために全体的に問題があるということです。

私が設定したTestCleanupを試しましたが、Foo_Accessor._instance = null;が動作しませんでした。私が本当に必要なのはFoo_Accessor._instance.IsValueCreated = false;です(_instanceは遅延です)。

私が考えていないレイジーオブジェクトの設定を解除する方法はありますか?

ないのはなぜ
+0

Foo_Accessor._instance = nullが機能していない理由がわかるように、コードを投稿できますか? –

答えて

5

Foo_Accessor._instance = new Lazy<Foo>(Something);

「何か」を確認してくださいあなたのFooクラスがやっていることと全く同じです。

+0

ええ、このようなことをテストごとのセットアップ段階に入れてください。 – porges

+0

セットアップまたはクリーンアップのいずれかで。どちらの方法でも、基本的にはLazyインスタンスを遅延状態に戻すように設定しています。 –

関連する問題