HttpContext オブジェクトに依存するいくつかのメソッドの単体テストを作成しようとしています。次のクラスを思いつきましたが、それが最善の方法だとは思いません。
internal class HttpContextMocking
{
public static HttpContext Context()
{
HttpContext context = new HttpContext(new SimpleWorkerRequest("", "", "", null, new StringWriter()));
context.Cache.Insert("SomeName", "value", null, DateTime.Now.AddMinutes(3), TimeSpan.Zero);
return context;
}
次に、単体テストでこのモック HttpContext を次のように呼び出します。
[TestMethod]
[TestCategory("Web")]
public void Get()
{
HttpContext.Current = HttpContextMocking.Context();
object result = CacheUtility.Get("NonExistentItem");
Assert.IsNull(result);
}
これを実装するより良い方法はありますか?ダミーデータを追加し始めると、よりクリーンになります。