我有两个项目用于单元测试和我的 Web 项目。
AuthenticationController controller = new AuthenticationController();
ViewResult result = controller.LogOut() as ViewResult;
Assert.IsNotNull(result);
在项目中,我将传递 http cookie 和授权请求。
当我运行 LogOut 测试时,它会在获取 cookie 时失败。有什么方法可以通过创建假 cookie 或任何其他方式来克服这个问题吗?
提前致谢。
最佳答案
希望对您有所帮助!或者使用模拟框架。
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;
}
}
}
}
关于c# - 使用 Cookie 进行 MVC 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078049/