Как имитировать POST формы MVC с помощью Moq

Не могли бы вы рассказать, как имитировать сообщение формы 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-запросом и контекстом. Я немного запутался, над чем высмеивать, а над чем использовать как на реальность. Спасибо за любые разъяснения.

6
задан Emerson de Mello 15 December 2011 в 08:24
поделиться