ホームページ >バックエンド開発 >C++ >Moq を使用して ASP.NET MVC 単体テストで HttpContext を効果的にモックする方法

Moq を使用して ASP.NET MVC 単体テストで HttpContext を効果的にモックする方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-11 20:41:42182ブラウズ

How to Effectively Mock HttpContext in ASP.NET MVC Unit Tests Using Moq?

Moq を使用して ASP.NET MVC で HttpContext をシミュレートします

ASP.NET MVC コントローラーをテストする場合、コードの動作を分離するには HttpContext をモックすることが重要です。この記事では、人気のあるモック フレームワーク Moq を使用してこれを実現する方法を説明します。

テスト メソッドで HttpContext をモックする必要があるとします。

<code>[TestMethod]
public void Home_Message_Display_Unknown_User_when_coockie_does_not_exist()
{
    var context = new Mock<HttpContextBase>();
    var request = new Mock<HttpRequestBase>();
    context
        .Setup(c => c.Request)
        .Returns(request.Object);
    HomeController controller = new HomeController();

    controller.HttpContext = context.Object; // 此处出错
}</code>

上記のコードでは、controller.HttpContext は読み取り専用プロパティであるため、設定しようとするとエラーが発生します。ただし、この問題は可変の ControllerContext 属性を使用して解決できます:

<code>controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);</code>

HttpContext は、ControllerContext 属性を設定することで効果的にシミュレートできます。 RequestContext と HttpContext のモックに関する詳細と例については、次のリソースを参照してください:

以上がMoq を使用して ASP.NET MVC 単体テストで HttpContext を効果的にモックする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。