【发布时间】:2013-10-16 03:22:33
【问题描述】:
我正在 C# 中针对我的 WebFormsMVP 代码编写一些单元测试。在我的代码中,如果满足某个条件,我有一些项目 - 我调用
Response.Redirect("urlToGoTo", true);
但似乎重定向后的所有代码仍在执行。这是nunit中的错误吗?或者除了写代码之外我还能做些什么:
if(somethingTrue){
Response.Redirect("toUrl", true);
return;
}
var keepGoing = someMoreProcesses();
Response.Redirect("toSomeOtherUrl", true);
--开始编辑--
在下面的代码中 - 如果我有一个测试来检查 Response.Redirect 是否被调用过 - 它会显示它被多次调用,即使 Response 应该在第一个 之后结束>重定向
if(somethingTrue){
//This should end the response!
Response.Redirect("toUrl", true);
}
//but this still runs in the unit test
var keepGoing = someMoreProcesses();
Response.Redirect("toSomeOtherUrl", true);
--结束编辑--
我还应该声明我正在设置一个最小起订量的 http 上下文,例如:
HttpContext = new Mock<HttpContextBase>();
Request = new Mock<HttpRequestBase>();
Response = new Mock<HttpResponseBase>();
Session = new Mock<HttpSessionStateBase>();
HttpContext.Setup(x => x.Request).Returns(Request.Object);
HttpContext.Setup(x => x.Response).Returns(Response.Object);
HttpContext.Setup(x => x.Session).Returns(Session.Object);
我可以在 moq Response 上设置什么吗?
【问题讨论】: