ho il seguente controller:come testare il codice di stato HTTP impostato un'azione ASP.NET MVC con MSpec
public sealed class SomeController : Controller
{
public ActionResult PageNotFound()
{
Response.StatusCode = 404;
return View("404");
}
}
ho creato una specifica 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(); };
}
Ma a causa di come Istanzio il controller, HttpContext è nullo. Quale sarebbe il modo migliore per testare il codice di stato impostato dall'azione PageNotFound
?
EDIT: Inviato una risposta al di sotto
Ho aggiornato la mia domanda con ulteriori informazioni. –
Hai bisogno di deriderlo prima. Ad esempio chiamando 'controller.SetMockControllerContext()' da https://gist.github.com/johnnyreilly/4959924#file-mvcmockhelpers-cs. –