VS Coded UI — фактические модульные тесты

Я разработчик C# и пользовательского интерфейса и заинтересован в написании модульных тестов в VS CodedUI для веб-приложений ASP.NET. Большинство применений, которые я видел, представляют собой интеграционные тесты, в которых вы пишете тест, который указывает на реальную веб-страницу, выполняете некоторые шаги и проверяете результат. Я хочу что-то меньшее и более детализированное, что очень просто для разработчиков (читай: ленивых: P) писать.

Моя текущая установка выглядит так:

  • Веб-приложение, содержащее страницы, элементы управления, javascript и т. д.
  • Веб-приложение также содержит тестовые страницы — страницы, которые содержат один пользовательский элемент управления в разметке и некоторые жестко запрограммированные данные в коде программной части.
  • Проект CodedUI, который запускает тестовую страницу, запускает тест и утверждает выходные данные.

Это хорошее начало, но я хочу его улучшить.

Проблема (первая...) заключается в том, что тестовые данные и этапы тестирования находятся в разных местах - в веб-приложении и проекте codedUI соответственно. В обычных модульных тестах для разработчиков вы пишете код, который устанавливает данные, затем делаете все остальное, и все, что вам нужно, находится в одном месте. С моей настройкой человек, наблюдающий за сбоем теста, должен знать, что нужно смотреть и на тест, и на тестируемую страницу.

Несколько идей, которые у меня были, и почему они отстойные:

  1. Поместите тестовую страницу в проект codedUI. Это проблема по нескольким причинам. Пользовательские элементы управления не могут быть легко протестированы, это было моей точкой остановки, но я считаю, что есть много других.
  2. Передайте строку запроса на тестовую страницу, которая предоставляет данные. Это не ужасная идея, но она может быстро стать громоздкой.
  3. Передайте общедоступный класс, который будет загружен тестовой страницей, содержащей тестовые данные. Это требует, чтобы на тестовой странице была ссылка на тестовый проект, что не очень хорошо.
  4. Динамически напишите и скомпилируйте тестовую страницу в тесте codedUI. Я даже не хочу начинать с этого.

person rythos42    schedule 15.03.2012    source источник
comment
До сих пор я использовал вариант № 2, так как он обеспечивает лучший способ предоставления тестовых данных, наиболее близких к самим тестам. Проблема, однако, в том, что строка запроса имеет ограниченную длину, и хотя мои текущие тесты не сталкивались с ней, будущие определенно будут.   -  person rythos42    schedule 17.03.2012


Ответы (1)


Я полагаю, вы говорите о модульном тестировании ваших веб-страниц с внешними данными. С помощью CUIT это можно сделать с помощью CUIT на основе данных.

person Ray Cheng    schedule 08.04.2012
comment
Мне это не нравится. Это тест на автоматизацию и недостаточно тест на модуль. Я хочу, чтобы тестовые данные были видны непосредственно там, где пишется тест. - person rythos42; 11.04.2012