【问题标题】:Testing Response.SetCookie() with MvcContrib使用 MvcContrib 测试 Response.SetCookie()
【发布时间】:2012-07-05 01:15:13
【问题描述】:

在我的控制器操作中,我使用 Response.SetCookie(myCookie) 方法设置了 Cookie。 在我的单元测试方法中,我想使用 Mock 或更好的 Stub 来检查所有参数是否已正确设置。我正在使用 MvcContrib TestHelper 设置 HttpContext 但我不知道如何将我的假 Response 对象传递给它。我正在使用 Moq 和 MvcContrib。

【问题讨论】:

    标签: asp.net-mvc-3 unit-testing


    【解决方案1】:

    您需要自己在 TestControllerBuilder 上模拟 HttpContext 属性。 HttContext 被标记为受保护,因此您的测试类需要从 TestControllerBuilder 继承才能设置它。我是这样做的:

    [TestClass]
    public class SampleTest : TestControllerBuilder
    {
        [TestMethod]
        public void TestLogOnActionSetsCookie()
        {
            var httpContextMock = new Mock<HttpContextBase>();
            var responseMock = new Mock<HttpResponseBase>();
            httpContextMock.Setup(c => c.Response)
                .Returns(responseMock.Object);
    
            responseMock
                    .Setup(r => r.SetCookie(It.IsAny<HttpCookie>()))
                    .Verifiable();
    
            var controller = new AccountController();
    
            base.HttpContext = httpContextMock.Object;
            base.InitializeController(controller);
    
            controller.LogOn();
    
            responseMock.Verify();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多