¿Alguien podría decir cómo simular una publicación de formulario MVC utilizando Moq?Cómo simular MVC formulario POST con Moq
Todo lo que quiero es probar mi método en base a algunas publicaciones de formularios diferentes.
Traté de Google para esto y no hay una guía de arriba hacia abajo por ahí.
Gracias
EDIT: añadir código
[TestMethod]
public void SubscriptionControllerTest()
{
var subscriptionViewModel = new SubscriptionViewModel();
//HTTP REQUEST SET UP
var httpRequest = new Mock<HttpRequestBase>();
httpRequest.Setup(r => r.Path).Returns("/Subscription/SendEmail");
httpRequest.Setup(r => r.Form).Returns(delegate()
{
var nv = new NameValueCollection();
nv.Add("FirstName", "John");
nv.Add("LastName", "Smith");
nv.Add("Email", "[email protected]");
nv.Add("Comments", "Comments are here...");
nv.Add("ReceiveUpdates", "true");
return nv;
});
//HTTP CONTEXT SET UP
var httpContext = new Mock<HttpContextBase>();
httpContext.Setup(c => c.Request).Returns(httpRequest.Object);
var subscriptionController = new Mock<SubscriptionController>();
subscriptionController.Setup(s => s.HttpContext).Returns(httpContext.Object);
var result = subscriptionController.Object.SendEmail(subscriptionViewModel);
Assert.AreEqual(((ViewResult)result).ViewName, "Index");
}
}
Tengo un controlador llamado SubscriptionController. Allí, tengo un método de acción llamado SendEmail. Quiero poder ejecutar mi Subscription/SendEmail usando este método de prueba anterior. Mi vista es un formulario con los siguientes campos: nombre, apellido, correo electrónico, comentarios y una casilla de verificación. Necesito burlarme de este formulario y también simular mi controlador, solicitud HTTP y contexto. Estoy un poco confundido sobre qué burlar y qué usar como real. Gracias por cualquier aclaración.
¿Puedes publicar la clase (o una porción relevante de ella) que estás intentando burlar? –