首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MvcContrib测试Response.SetCookie()

使用MvcContrib测试Response.SetCookie()
EN

Stack Overflow用户
提问于 2012-01-30 19:42:00
回答 1查看 703关注 0票数 2

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-05 01:15:13

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

代码语言:javascript
复制
[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();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9063313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档