Не могли бы вы рассказать, как имитировать сообщение формы MVC с помощью Moq?
Все, что я хочу, это провести модульное тестирование моего метода на основе нескольких сообщения различной формы.
Я попытался найти это в Google, но там нет руководства сверху вниз.
Спасибо
РЕДАКТИРОВАТЬ: добавление кода
[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", "jsmith@host.com");
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");
}
}
У меня есть контроллер под названием SubscriptionController. Там у меня есть метод действия под названием SendEmail. Я хочу иметь возможность запускать свою подписку / SendEmail, используя этот тестовый метод, указанный выше. Мое представление - это форма со следующими полями: Имя, Фамилия, Электронная почта, Комментарии и флажок. Мне нужно издеваться над этой формой, а также издеваться над моим контроллером, HTTP-запросом и контекстом. Я немного запутался, над чем высмеивать, а над чем использовать как на реальность. Спасибо за любые разъяснения.