【问题标题】:MVC Unit Testing with Cookies使用 Cookie 进行 MVC 单元测试
【发布时间】:2016-08-22 19:28:40
【问题描述】:

我有两个项目用于单元测试和我的网络项目。

        AuthenticationController controller = new AuthenticationController();
        ViewResult result = controller.LogOut() as ViewResult;
        Assert.IsNotNull(result);

在项目中,我将传递 http cookie 和授权请求。

当我运行 LogOut 测试时,它会在获取 cookie 时失败。有没有办法通过创建假 cookie 或任何其他方式来克服这个问题?

提前致谢。

【问题讨论】:

标签: c# asp.net-mvc unit-testing cookies


【解决方案1】:

希望这会有所帮助!或者使用模拟框架。

AuthenticationController controller = new AuthenticationController();
var httpContext = new MockHttpContext();
//set cookie

controller.ControllerContext = new ControllerContext(httpContext, controller);

public class MockHttpContext : HttpContextBase
{
    readonly HttpRequestBase _request;

    public MockHttpContext()
    {
        _request = new MockHttpRequest();
    }

    public override HttpRequestBase Request
    {
        get { return _request; }
    }

    class MockHttpRequest : HttpRequestBase
    {
        readonly HttpCookieCollection _cookies;

        public MockHttpRequest()
        {
            _cookies = new HttpCookieCollection();
        }

        public override HttpCookieCollection Cookies
        {
            get
            {
                return _cookies;
            }
        }
    }
}

【讨论】:

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