小编Kam*_*one的帖子

如何使用Moq模拟Response.StatusCode?

我有以下方法:

    public void SetHttpStatusCode(HttpStatusCode httpStatusCode)
    {
        Response.StatusCode = (int)httpStatusCode;
    }
Run Code Online (Sandbox Code Playgroud)

并进行以下测试:

    [TestMethod]
    public void SetHttpStatusCode_SetsCorrectStatusCode()
    {
        //Arrange
        //Any url will suffice
        var mockHttpContext = TestHelpers.MakeHttpContext(""); 
        mockHttpContext.SetupSet(x => x.Response.StatusCode = It.IsAny<int>());

        //creates an instance of an asp.net mvc controller
        var controller = new AppController()
        {
         ControllerContext = new ControllerContext() { 
                   HttpContext = mockHttpContext.Object }
                             };

        // Act
        controller.SetHttpStatusCode(HttpStatusCode.OK);

        //Assert
        mockHttpContext.VerifySet(x => x.Response.StatusCode = It.IsAny<int>());
    }
Run Code Online (Sandbox Code Playgroud)

另外,这是MakeHttpContext

 public static Mock<HttpContextBase> MakeHttpContext(string url)
    {
        var mockHttpContext = new Mock<HttpContextBase>();
        var mockRequest = new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unit-testing moq

10
推荐指数
1
解决办法
6761
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

moq ×1

unit-testing ×1