同じクラス内の別のメソッドを呼び出すメソッドをテストしています。
この内部メソッド呼び出しが結果を返すかどうかに応じて、私は異なることをします。この場合、それはCache
クラスであり、私は自分のGetOrStore
メソッドをテストしています。Get
nullをGet
返すときと何かを返すときの2つのパスをテストしたいと思います。
Get
から呼び出されたときの出力を制御するための正しいアプローチは何GetOrStore
ですか?モックインスタンスで実行する必要があるように感じGet
ますが、同じクラスの2つのメソッドを指定して実行する方法がわかりません。
アップデート
現時点で私が考えることができる唯一のことは、テストを実行する前にキャッシュキーが削除されていることを確認することです。
HttpRuntime.Cache.Remove("foo"); // Make sure foo isn't in the cache.
var output = _cache.GetOrStore("foo", () => "Foo", 100);
Assert.AreEqual(output, "Foo");
しかし、これはただ間違っていると感じます。テスト中にHttpRuntimeキャッシュに実際に触れたくありません。