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

Я создаю закодированный тест пользовательского интерфейса, в котором я нажимаю кнопку, чтобы удалить все элементы в списке на основе количества элементов в списке, мне было интересно, возможно ли это в кодированном тесте пользовательского интерфейса Visual Studio?


person Stacker    schedule 01.07.2012    source источник
comment
Не понимаю. Если вы хотите увидеть, что происходит, когда у вас есть n элементов в списке, вы создаете список с n элементами в нем. Если что-то еще происходит с более или менее в списке, вы также настраиваете это. Не делайте тесты зависимыми друг от друга.   -  person Tony Hopkinson    schedule 01.07.2012
comment
это список SharePoint, я хочу удалить элементы в списке, чтобы провести тест, если я попытаюсь удалить элементы в списке без элементов, это не удастся, я хочу сначала убедиться, что в списке есть другие элементы мудро, мне не нужно удалять   -  person Stacker    schedule 01.07.2012
comment
Вы можете создать утверждение пользовательского интерфейса для первого элемента списка. Если он выдает исключение, вам не нужно удалять какой-либо элемент. В качестве альтернативы еще проще написать блок catch вокруг действия пользовательского интерфейса, которое удаляет элемент в списке. Просто поймайте исключение, не вызывая его повторно, и зарегистрируйте его как «Не удалось удалить элемент списка, причина: элементы не найдены».   -  person AutomatedChaos    schedule 02.07.2012
comment
@AutomatedChaos Зачем просто проверять, существует ли элемент, прежде чем пытаться его удалить? Использование исключений для выполнения программы — плохая привычка для imo.   -  person stoj    schedule 09.07.2012
comment
@stoj вы правы насчет плохой привычки, но при тестировании закодированного пользовательского интерфейса это обычная практика, потому что вы тестируете положительный и отрицательный сценарии с одним и тем же кодовым блоком. Отрицательный путь генерирует исключение, которое вы можете оценить по тестовым данным. Это чище, чем просто логический флаг, потому что вы можете прочитать (Exception.Message), что пошло не так, и вывести его в TestContext, или вы можете принять решение на основе типа исключения: AssertFailureExceptions для проверок, связанных с тестами, любые другие для серьезных проверок. неожиданные проблемы, которые вы перекидываете.   -  person AutomatedChaos    schedule 10.07.2012
comment
@AutomatedChaos В этом случае вы ничего не получите от использования исключения, если элемент не существует, он не существует. Если вы оберните функцию удаления в Try/Catch, как вы обработаете ошибку в диалоговом окне подтверждения, чтобы проглотить ее, потому что она соответствует аналогичному исключению? Или вы заключаете отдельные действия в блоки Try/Catch? Кажется, много дополнительных проблем, когда вы можете просто проверить количество элементов списка или существование первого элемента.   -  person stoj    schedule 10.07.2012


Ответы (1)


Предполагая, что список является поддерживаемым элементом управления (и так и должно быть), он покажет количество элементов, которые находятся в списке, и вы можете использовать это, чтобы решить, хотите ли вы удалить элементы. Если список поддерживается только частично, но элементы в списке видны CodedUI, вы можете проверить наличие первого элемента и решить удалить элементы оттуда.

person stoj    schedule 10.07.2012