Tôi đã nhận được Action Method
sau đây Tôi đang cố gắng để moq kiểm tra. Hãy chú ý đến số AcceptVerbs
? Tôi cần đảm bảo rằng tôi đang thử nghiệm điều đó.Làm cách nào để kiểm tra HTTP-Post bằng Moq trong ASP.NET?
đây là phương pháp.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include = "Subject, Content")]Post post,
HttpPostedFileBase imageFileName)
{
...
}
đây là các mã moq tôi có ...
[TestMethod]
public void Create_Action_snip_sniop_When_Http_Post_Is_Succesful()
{
// Arrange.
var mock = new Mock<ControllerContext>();
mock.SetupGet(m => m.HttpContext.Request.HttpMethod).Returns("POST");
// Snip some other arrangements.
var controller = PostController;
controller.ControllerContext = mock.Object;
// Act.
var viewResult = controller.Create(post, image.Object) as ViewResult;
// Assert.
Assert.IsNotNull(viewResult);
// TODO: Test that the request was an Http-Post.
những gì tôi cần phải làm gì để xác minh theo yêu cầu là một bài?
Vì vậy, những gì bạn đang nói là bạn đang thử nghiệm để đảm bảo rằng bạn đã trang trí các phương pháp điều khiển cụ thể với động từ .post .. như trái ngược với thử nghiệm mà phương pháp đã được kích hoạt trên một Request là Http-posted (bởi vì đó là đường ống dẫn nước bên ngoài phạm vi này -> nó là công cụ khung) ..? –
Chính xác. Chức năng gọi bộ lọc nằm ngoài phạm vi của phương thức (được kích hoạt trước khi phương thức được gọi), do đó bạn sẽ không bao giờ thấy một POST không trong phương thức của bạn nếu thuộc tính đúng được áp dụng. – tvanfosson