Czy ktoś mógłby powiedzieć, jak kpić z formularza MVC za pomocą Moq?Jak wyśmiać formularz MVC POST z Moq
Wszystko, czego chcę, to przetestować moją metodę w oparciu o kilka różnych postów formularzy.
Próbowałem Google o to i nie ma tam od góry do dołu przewodnik tam.
Dzięki
EDIT: Kod
[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");
}
}
dodając Mam kontroler o nazwie SubscriptionController. W tym miejscu mam metodę działania o nazwie SendEmail. Chcę móc uruchomić mój Subscription/SendEmail przy użyciu powyższej metody testowej. Mój widok jest formularzem z następującymi polami: Imię, Nazwisko, E-mail, Komentarze i pole wyboru. Muszę wyśmiać ten formularz, a także wyśmiać mój kontroler, żądanie http i kontekst. Jestem nieco zdezorientowany, co kpić i co używać jako rzeczywistego. Dziękuję za wyjaśnienia.
Czy możesz opublikować zajęcia (lub odpowiednią ich część), które próbujesz sfałszować? –