Поделиться через


Рекомендации по выполнению закодированных тестов пользовательского интерфейса

В этом разделе описаны рекомендации по разработке закодированных тестов пользовательского интерфейса.

Требования

  • Visual Studio Ultimate, Visual Studio Premium

Рекомендации

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

  • По возможности используйте построитель закодированных тестов пользовательского интерфейса.

  • Не изменяйте файл UIMap.designer.cs напрямую.Все изменения в этом файле будут перезаписаны.

  • Создавайте тест как последовательность записанных методов.Дополнительные сведения о записи методов см. в разделе Создание закодированных тестов пользовательского интерфейса.

  • Каждый записанный метод должен действовать как одна страница, форма или диалоговое окно.Для каждой новой страницы, формы или диалогового окна необходимо создать отдельный метод.

  • При создании метода заменяйте его имя по умолчанию значащим именем.Значащее имя поможет определить назначение метода.

  • По возможности ограничьте длину каждого записанного метода 10 действиями.Такой модульный подход упростит замену метода в случае изменения пользовательского интерфейса.

  • Создавайте все утверждения с помощью построителя закодированных тестов пользовательского интерфейса, который автоматически добавляет метод утверждения в файл UIMap.Designer.cs.

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

  • Для каждого модуля тестируемого приложения создайте отдельный файл UIMap.Дополнительные сведения см. в разделе Тестирование крупного приложения с несколькими картами пользовательского интерфейса.

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

  • При создании утверждений путем написания кода с помощью API создайте метод для каждого утверждения в части класса UIMap, который находится в файле UIMap.cs.Для выполнения утверждения вызывайте соответствующий метод из метода теста.

  • При непосредственном написании кода с помощью API максимально широко используйте в коде свойства и методы классов, создаваемых в файле UIMap.Designer.cs.Эти классы обеспечивают более высокий уровень удобства, надежности и производительности работы.

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

В ходе тестового запуска элементы управления пользовательского интерфейса обнаруживаются средой тестирования с помощью набора свойств поиска, которые применяются к каждому классу элемента управления в определениях, создаваемых построителем закодированных тестов пользовательского интерфейса в файле UIMap.Designer.cs.Свойства поиска содержат пары "имя свойства-значение свойства", которые можно использовать для определения элемента управления, например свойства FriendlyName, Name и ControlType элемента управления.Если свойства поиска не меняются, закодированный тест пользовательского интерфейса успешно обнаружит элемент управления в пользовательском интерфейсе.Если свойства поиска изменились, закодированный тест пользовательского интерфейса содержит интеллектуальный алгоритм сопоставления, в котором для обнаружения элементов управления и окон пользовательского интерфейса используются эвристические правила.При изменении пользовательского интерфейса предусмотрены средства изменения свойств поиска ранее определенных элементов для обеспечения возможности их обнаружения.

Что делать в случае изменения пользовательского интерфейса

В процессе разработки пользовательский интерфейс часто меняется.Ниже приведено несколько способов снижения последствий этих изменений.

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

  • Если элемент управления содержит утверждение, которое больше не является допустимым, выполните следующие действия.

    • Удалите метод, который содержит утверждение.

    • Удалите вызов этого метода из метода теста.

    • Добавьте новое утверждение путем перетаскивания кнопки с перекрестием на элемент управления пользовательского интерфейса. Откройте карту пользовательского интерфейса и добавьте новое утверждение.

Дополнительные сведения о том, как записать закодированные тесты пользовательского интерфейса см. в разделе Проверка кода с помощью закодированных тестов пользовательского интерфейса.

Что делать, если для продолжения теста необходимо дождаться завершения фонового процесса

Иногда для перехода к следующему действию пользовательского интерфейса требуется дождаться завершения некоторого процесса.Для этого можно использовать свойство WaitForReadyLevel для установки задержки перед продолжением теста, как показано в следующем примере.

// Set the playback to wait for all threads to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.AllThreads;

// Press the submit button
this.UIMap.ClickSubmit();

// Reset the playback to wait only for the UI thread to finish
Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.UIThreadOnly;

См. также

Ссылки

UIMap

Microsoft.VisualStudio.TestTools.UITesting

Основные понятия

Проверка кода с помощью закодированных тестов пользовательского интерфейса

Тестирование крупного приложения с несколькими картами пользовательского интерфейса

Поддерживаемые конфигурации и платформы для закодированных тестов пользовательского интерфейса и записей действий

Другие ресурсы

Создание закодированных тестов пользовательского интерфейса