我正在写一些单元测试在C#中对我的WebFormsMVP代码。在我的代码,我有一些项目,其中,如果满足特定条件 - 我称之为nunit继续运行后response.redirect结束响应
Response.Redirect("urlToGoTo", true);
但似乎所有代码重定向后,仍然执行。这是一个在nunit中的错误?或者是有什么我可以除了编写代码就像做:
if(somethingTrue){
Response.Redirect("toUrl", true);
return;
}
var keepGoing = someMoreProcesses();
Response.Redirect("toSomeOtherUrl", true);
--Begin Edit--
在下面的代码 - 如果我有一个测试,检查该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);
--End Edit--
我还要指出,我设立像moq'd 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);
有什么我可以设置的最小起订量反应?
Thanks Rag - 但我认为我的单元测试仍然会运行其他代码。我已经修改了一下我的问题,希望能够更清楚 – ajwaka
@ajwaka - 我已经更新了附加细节的答案。希望能帮助您找到解决方案。 – Spock