私は次のコントローラーを持っています:
public sealed class SomeController : Controller
{
public ActionResult PageNotFound()
{
Response.StatusCode = 404;
return View("404");
}
}
MSpec仕様を作成しました:
[Subject(typeof (SomeController))]
public class when_invalid_page_is_requested : SomeControllerSpec
{
Because of = () => result = Controller.PageNotFound();
It should_set_status_code_to_404 =
() => Controller.Response.StatusCode.ShouldEqual(404);
}
public abstract class SomeControllerSpec
{
protected static HomeController Controller;
Establish context = () => { Controller = new SomeController(); };
}
しかし、コントローラーをインスタンス化する方法が原因で、HttpContextはnullになります。PageNotFound
アクションによって設定されたステータスコードをテストするための最良の方法は何でしょうか?
編集:以下に回答を投稿しました