我正在寫一些單元測試在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