2014-08-27 2 views
0

Прежде всего, я могу лаять с неправильным деревом, поэтому, пожалуйста, исправьте меня, если я ошибаюсь.UI Тестирование MVC с WatiN и введением параметра в контроллер

Это говорит о том, что я пытаюсь написать sme UI модульные тесты, которые используют WatIn. В настоящее время я работаю только над подмножеством пользовательского интерфейса.

У меня есть контроллер под названием Product вместе с его соответствующими видами. Контроллер принимает ProductRepository через конструктор.

То, что я хотел бы сделать, это проверить, что разные категории продуктов отображаются правильно, в разных тестах, поэтому мне нужно передать какой-то зашитый или издевавшийся репозиторий в мой код.

Мой тест настроен вдоль линий;

using (var ie = new IE("http://localhost:2904/Product")) 
{ 
    ... 
} 

Как я могу передать в репозиторий контроллер, который предоставит соответствующий продукт? Как только я вызвал оператор using, моя система запустила браузер, так что уже слишком поздно. Но пока браузер не запущен, контроллер не существует, поэтому я не могу вставлять его в соответствующий репозиторий.

Или я в корне ошибался, и я могу использовать WatiN только для своей базы данных, и мне нужно запрограммировать его для выбора члена каждого типа продукта из db, adn test таким образом?

ответ

0

Думаю, как вы предлагаете, вы выбираете неправильный конец проблемы. Если я правильно понимаю, вам не нужен тест UI и Watin, а скорее интеграционные тесты. Я бы предложил создать экземпляр контроллера, при необходимости добавить хранилища и высмеять другие зависимости. Чем вы можете переключать хранилища и так далее.

В тестах пользовательского интерфейса вы проверяете все свое приложение от верхней части интерфейса до базы данных, поэтому трудно изменить поведение или издеваться над некоторыми частями. Вам действительно нужно проверить свою функциональность с помощью пользовательского интерфейса? Не лучше ли тестировать его только в контроллере, или это не вариант для вашего дела?

Кажется, или я вас неправильно понял?

+0

Нет, вы поняли меня хорошо :-) Я просто надеялся, чтобы пользовательский интерфейс был построен, а затем посмотрите на домен, а затем на хранилища, поскольку бизнес хочет увидеть прототип как можно скорее. Похоже, им придется подождать – Matt

+0

Я это понимаю. Ну, вы можете добавить некоторую конфигурацию и базу для этих репозиториев изменений для макетов, если это необходимо. –

Смежные вопросы