WebFormsMVP コードに対して C# でいくつかの単体テストを作成しています。私のコード内には、特定の条件が満たされた場合にいくつかのアイテムがあります-私は呼び出します
Response.Redirect("urlToGoTo", true);
しかし、リダイレクト後のすべてのコードはまだ実行されているようです。これはnunitのバグですか?または、次のようなコードを書く以外にできることはありますか?
if(somethingTrue){
Response.Redirect("toUrl", true);
return;
}
var keepGoing = someMoreProcesses();
Response.Redirect("toSomeOtherUrl", true);
--編集開始--
次のコードでは、Response.Redirect が 1 回呼び出されたことを確認するテストがある場合、 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);
--編集終了--
また、次のような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);
moq Response でセットアップできるものはありますか?