Я разработчик C # и пользовательского интерфейса и мне интересно написать модульные тесты в VS CodedUI для веб-приложений ASP.NET.Большинство случаев, которые я видел, это интеграционные тесты , в которых вы пишете тест, который указывает на реальную веб-страницу, выполняете некоторые шаги и тестируете вывод.Я хочу, чтобы что-то меньшее и более детальное, что было бы очень просто для разработчиков (читай: lazy: P), чтобы написать.
Моя текущая настройка выглядит так:
- Веб-приложение, содержащее страницы, элементы управления, javascript и т. д.
- Веб-приложение также содержит тестовые страницы - страницы, содержащие один пользовательский элемент управления в разметке и некоторые жестко закодированные данные в выделенном коде.
- Проект CodedUI, который запускает тестовую страницу, запускает тест и подтверждает вывод.
Это хорошее начало, но я хочу его улучшить.
The (first...) проблема в том, что данные теста и шаги теста находятся в разных местах - в веб-приложении и проекте codedUI соответственно.В обычных модульных тестах разработчика вы пишете код, который устанавливает данные, затем делаете все остальное, и все, что вам нужно, находится в одном месте.При моей настройке человек, который смотрит на неудачу теста, должен знать, как смотреть на тест и страницу, на которой проводится тестирование.
Несколько идей, которые у меня были, и почему они отстой:
- Поместите тестовую страницу в проект codedUI.Это проблема по нескольким причинам.Пользовательские элементы управления не могут быть легко протестированы, это была моя точка остановки, но я думаю, что есть много других.
- Передайте строку запроса на тестовую страницу, которая предоставляет данные.Это не ужасная идея, но она может быстро стать громоздкой.
- Передать открытый класс для загрузки тестовой страницей, которая содержит тестовые данные.Для этого на тестовой странице должна быть ссылка на проект тестирования, что не годится.
- Динамически записывать и компилировать тестовую страницу в тесте codedUI.Я даже не хочу начинать с этого.