首頁 >後端開發 >C++ >如何使用 Moq 在 ASP.NET MVC 中模擬 HttpContext?

如何使用 Moq 在 ASP.NET MVC 中模擬 HttpContext?

DDD
DDD原創
2025-01-11 20:37:42255瀏覽

How to Mock HttpContext in ASP.NET MVC with Moq?

在 ASP.NET MVC 應用程式中使用 Moq 模擬 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 模擬 HttpContextRequestContext 的更詳細指導,請參閱以下資源:

以上是如何使用 Moq 在 ASP.NET MVC 中模擬 HttpContext?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn