Moq を使用して ASP.NET MVC アプリケーションで HttpContext をモックする
Moq を使用して ASP.NET MVC テスト内で をモック HttpContext
するには、少し異なるアプローチが必要です。 コントローラーの HttpContext
プロパティは読み取り専用であるため、その親である ControllerContext
を操作する必要があります。 ControllerContext
を設定すると、モックされたコンテキストが Initialize
メソッドに正しく渡されるようになります。
テストメソッドを変更する方法は次のとおりです:
<code class="language-csharp">[TestMethod] public void Home_Message_Display_Unknown_User_when_cookie_does_not_exist() { var mockHttpContext = new Mock<HttpContextBase>(); var mockHttpRequest = new Mock<HttpRequestBase>(); mockHttpContext .Setup(c => c.Request) .Returns(mockHttpRequest.Object); var controller = new HomeController(); // Set the ControllerContext, not the HttpContext directly controller.ControllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(), controller); // ... rest of your test code }</code>
このメソッドは、HttpContext
の読み取り専用制限をバイパスし、効果的なモックを可能にします。 Moq を使用した HttpContext
と RequestContext
のモックに関する詳細なガイダンスについては、次のリソースを参照してください:
以上がMoq を使用して ASP.NET MVC で HttpContext をモックする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。