Qualcuno potrebbe dirmi come si burla un post di un modulo MVC usando Moq?Come simulare il modulo MVC POST con Moq
Tutto quello che voglio è testare il mio metodo basato su pochi moduli di forma diversa.
Ho provato a Google per questo e non c'è una guida da cima a fondo.
Grazie
EDIT: codice
[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");
}
}
aggiungendo Ho un controller chiamato SubscriptionController. In là, ho un metodo di azione chiamato SendEmail. Voglio essere in grado di eseguire il mio abbonamento/SendEmail utilizzando questo metodo di prova sopra. La mia vista è un modulo con i seguenti campi: Nome, Cognome, Email, Commenti e una casella di controllo. Ho bisogno di prendere in giro questo modulo e anche deridere il mio controller, la richiesta http e il contesto. Sono un po 'confuso su cosa deridere e cosa usare come reale. Grazie per qualsiasi chiarimento.
Puoi pubblicare la classe (o una parte rilevante di esso) che stai cercando di deridere? –