Mam następujący Kontroler:Jak testować kod stanu HTTP ustawiony przez działanie ASP.NET MVC z MSpec
public sealed class SomeController : Controller
{
public ActionResult PageNotFound()
{
Response.StatusCode = 404;
return View("404");
}
}
I stworzyli specyfikację 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(); };
}
Ale ze względu na to, jak Inicjuję kontroler, HttpContext ma wartość NULL. Jaki byłby najlepszy sposób przetestowania kodu statusu ustawionego przez działanie PageNotFound
?
EDIT: Wysłany odpowiedź poniżej
Zaktualizowałem moje pytanie z dodatkowymi informacjami. –
Najpierw musisz wyśmiać. Na przykład wywołując 'controller.SetMockControllerContext()' z https://gist.github.com/johnnyreilly/4959924#file-mvcmockhelpers-cs. –