Tôi có bộ điều khiển sau:Làm thế nào để kiểm tra mã trạng thái HTTP được thiết lập bởi một hành động ASP.NET MVC với MSpec
public sealed class SomeController : Controller
{
public ActionResult PageNotFound()
{
Response.StatusCode = 404;
return View("404");
}
}
Tôi đã tạo ra một đặc điểm kỹ thuật 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(); };
}
Nhưng vì cách Tôi nhanh chóng điều khiển, HttpContext là null. Cách tốt nhất để kiểm tra mã trạng thái được đặt bởi hành động PageNotFound
là gì?
EDIT: Đăng một câu trả lời dưới đây
Tôi đã cập nhật câu hỏi của mình với nhiều thông tin hơn. –
Bạn cần phải thử trước. Ví dụ bằng cách gọi 'controller.SetMockControllerContext()' từ https://gist.github.com/johnnyreilly/4959924#file-mvcmockhelpers-cs. –