Переход от написания тестов для MVP к MVC - PullRequest
0 голосов
/ 08 июня 2009

Я перевожу приложение webforms, написанное с MVP, чтобы использовать инфраструктуру MVC, и хотел знать, как я должен тестировать простое действие контроллера, которое возвращает частичное представление. При использовании MVP я бы утверждал true для каждого свойства в представлении = ожидаемое значение.

Контролируемое действие контроллера

<OutputCache(Location:=OutputCacheLocation.None)> _
Function Edit(ByVal id As Integer) As ActionResult
    Dim Form As Form = mFormService.GetFormById(id)

    Return PartialView("Form", Form)
End Function

То, что я хочу проверить, правильно ли отображаются значения «Форма» в представлении (но это то, что я должен проверять, как я делал при использовании шаблона MVP?)

1 Ответ

3 голосов
/ 08 июня 2009

Вы должны тестировать ViewModel и находящиеся в нем данные. Кроме того, вам следует проверить, соответствует ли результат ожидаемому типу (например, ViewResult в большинстве случаев). Наконец, вы должны проверить имя представления.

Например, это тест для действия контроллера, который возвращает форму создания для добавления новой сущности пользователя в существующую компанию. Идентификатор компании предоставляется контроллеру в качестве параметра id:

        [Test]
        public void Create_Get_Shows_View()
        {
            //Setup    
            //setup Controller, fakes, mocks, etc... here

            //Execution
            var result = (ViewResult)Controller.Create(companyID);

            //Assertion
            var model = (UsersController.CreateViewModel) result.ViewData.Model;
            Assert.AreEqual("", result.ViewName);
            Assert.IsNotNull(model.User);
            Assert.AreEqual(companyID,model.CompanyID);
        }

Редактировать: Вы также можете проверить, установлен ли правильный HttpVerb. Вы можете сделать это с помощью отражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...