Как проверить код состояния HTTP, установленный действием ASP.NET MVC с помощью MSpec

У меня есть следующий контроллер:

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?

EDIT: Posted an answer below

5
задан Arnold Zokas 29 September 2011 в 15:53
поделиться