#wpf #silverlight #ui-automation #acceptance-testing
#wpf #silverlight #пользовательский интерфейс-автоматизация #приемочное тестирование
Вопрос:
Свойства AutomationProperties.Прикрепленное свойство AutomationID, похоже, преследует две цели:
- Идентификация элементов управления пользовательского интерфейса во время автоматизированных приемочных тестов.
- Специальные возможности.
Учитывая, что существует много случаев, когда элементы управления пользовательского интерфейса генерируются во время выполнения (например, привязанные к данным древовидные представления), которые заставляют приемочные тесты искать элементы управления с использованием других средств, когда имеет смысл фактически устанавливать значение для AutomationID и какое значение? Является ли это обычным процессом для определения того, какие элементы управления должны иметь их, а какие нет? Или есть какое-то общее руководство, которому могут следовать все разработчики?
Ответ №1:
AutomationID действительно предназначен для тестирования, поэтому то, как вы его используете, зависит от того, как вы хотите протестировать свое приложение (или, для приложения, созданного командой, а не отдельным человеком, как тестовая группа хочет протестировать приложение). Ключевое использование AutomationID заключается в том, чтобы позволить тестовому коду надежно находить элемент без необходимости ссылаться на что-то вроде Name, которое может меняться в разных локализованных сборках (или которое может меняться по мере изменения пользовательского интерфейса во время разработки). Нет необходимости использовать AutomationID вообще; если у test есть какие-то другие способы идентификации элементов, они могут использовать это вместо этого и оставить AutomationID неназначенным.
Доступность обычно его не использует. Это ничего не значит для конечного пользователя и не гарантируется для любого данного элемента управления; поэтому с ним мало что можно сделать полезного.
Тестирование и доступность имеют много совпадений; есть части UIAutomation, которые обслуживают оба, но также и части, которые обслуживают только один или другой; AutomationID — это одна из частей, специально предназначенных для тестирования.
Ответ №2:
Это произвольно. Команда контроля качества должна знать об элементах управления, которые им понадобятся во время автоматизированных тестов пользовательского интерфейса, и вам нужно индивидуально присвоить им уникальный идентификатор, чтобы упростить работу тестировщиков. По крайней мере, так я это понимаю. Я не встречал никаких рекомендаций по этому поводу.