我正在 C# 中针对我的 WebFormsMVP 代码编写一些单元测试。在我的代码中,如果满足某个条件,我有一些项目 - 我打电话
Response.Redirect("urlToGoTo", true);
但似乎重定向后的所有代码仍然执行。这是nunit中的错误吗?或者除了编写代码之外我还能做些什么:
if(somethingTrue){
Response.Redirect("toUrl", true);
return;
}
var keepGoing = someMoreProcesses();
Response.Redirect("toSomeOtherUrl", true);
--开始编辑--
在下面的代码中——如果我有一个测试来检查 Response.Redirect 是否被调用过一次——它会显示它被调用了多次,即使响应应该在第一次重定向之后结束
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);
我可以在最小起订量响应上设置什么吗?