Tengo el siguiente Action Method
Estoy tratando de moq prueba. Observe el AcceptVerbs
? Necesito asegurarme de que estoy probando eso.¿Cómo puedo probar una publicación HTTP con Moq en ASP.NET?
he aquí el método.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include = "Subject, Content")]Post post,
HttpPostedFileBase imageFileName)
{
...
}
Aquí está el código que tengo moq ...
[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.
¿Qué necesito hacer para verificar la solicitud era un mensaje?
Así que lo que está diciendo es que se está probando para asegurarse de que ha decorado el método de control específico con el verbo .Post .. a diferencia de las pruebas que el método se activó en una solicitud que está publicada en Http (porque eso está fuera de este ámbito -> es algo de framework) ...? –
Correcto. La funcionalidad que invoca el filtro está fuera del alcance del método (disparada primero antes de invocar el método) por lo que nunca verá un elemento no POST en su método si se aplica el atributo correcto. – tvanfosson