使用cookie进行MVC单元测试
本文关键字:单元测试 MVC 进行 cookie 使用 | 更新日期: 2023-09-27 18:03:20
我有两个项目用于单元测试和我的web项目。
AuthenticationController controller = new AuthenticationController();
ViewResult result = controller.LogOut() as ViewResult;
Assert.IsNotNull(result);
,在项目中,我将传递http cookie和授权请求。
当我运行LogOut测试时,它将在获取cookie时失败。有没有办法通过制造假饼干或其他方法来克服这一点?
希望这对你有帮助!或者使用mock框架。
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;
}
}
}
}