Модульные тесты пользовательского интерфейса в MVC3 - PullRequest
3 голосов
/ 03 октября 2011

У меня есть проект MVC и множество модульных тестов TDD для проверки передачи данных, которые все работают нормально. Однако сейчас я собираюсь добавить несколько тестов для графического интерфейса.

Как бы я протестировал что-то вроде следующего:

Если home / page1, нажмите «Далее», чтобы перейти "/Page2".

Я до сих пор не совсем понимаю, как проводить тестирование функций на основе пользовательского интерфейса.

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Если вы хотите проверить действия контроллера, вы можете сделать что-то подобное (Я предполагаю, что в этом тесте много чего, но я надеюсь, что вы получите все необходимое)

[Test]
public void Page1_Post_IfallDataOK_ShouldSaveAndReturnPage2()
{
  var controller = new HomeController(repository.Object); //repository is: Mock<IRepository>
  var result = controller.Page1(new MyModel() {MyValue = "test"});
  Assert.IsInstanceOfType(typeof(RedirectToRouteResult), result);
  var redirect = (RedirectToRouteResult)result;
  Assert.AreEqual("Page2", redirect.RouteValues["action"]);
  repository.Verify(x => x.Save(It.IsAny<MyModel>()), Times.Once());
}
...