Как в Coded UI Test (VS 2010) выполнить проверку отсутствия на странице контрола в веб приложении


(anton_matyushkin) #1

Добрый день.

Ситуация следующая: есть веб-приложение. Работаю в ним под "пользователем 1", создаю документ-черновик, среди списка  документов этот документ отображается с типом "Черновик" (в нашей системе черновик доступен только автору, т.е. другие пользователи его не видят). После того, как черновик создан и отображен в списке - делаем логофф из системы, и авторизуемся "пользователем 2". Переходим к списку с документами, где был создан черновик и видим, что черновика в списке нет (что является верным).

Вопрос: как правильно написать проверку того, что черновик не отображен на странице?

Пишу на C#.

Я вижу решение этой проблемы следующим образом: нам надо взять данные о черновике (например, название) в момент, когда черновик создан "пользователем 1". Затем, когда мы дошли до списка "пользователем 2" нам надо сделать поиск контрола с названием нашего черновика. И, убедившись, что ничего подобного на странице нет обработать ситуация, как правильную.

В данном описание мне непонятно, как правильно обработать отсутствие контрола? Да и может быть, что мой подход не самый изящный - может будут лучшие предложения.

Спасибо.


(levaal) #2

Добрый день.

 

Я вижу два способа, как я бы решил похожее:

1) написание метода GetDocuments() который бы возвращал весь список документов (в том числе с типом "Черновик"), например как ArrayList.

Далее, после создания документа-черновика, я бы вытащил список и получил бы ArrayList например с 8-ю элементами.

Потом логинимся другим пользователем и вытаскиваем еще раз список документов.

Теперь начинаем проверять:

проверка1: в списке должно быть 7 документов (тут надо позаботиться о тестовых данных, чтобы был только 1 черновик чужой и чтобы у пользователя 2 не было своих черновиков)

проверка2: у каждого элемента из списка проверяем название - если совпадает/содержит название черновика - выкидываем ошибку, тест провален.

 

2) имея название черновика, заходим вторым пользователя и находим элемент который содержит весь список (div или table).

Далее забираем его innerHTML в string и сравниваем если он содержит название черновика - если содержит выкидываем ошибку, тест провален.

 

Можно сделать так, как вы говорили - попробовать найти поиском контрол с таким названием, но тут есть риск что он не найдет элемент не потому, что его нет, а потому что ошибка в "описании" контрола.

Для этого способа просто воспользуйтесь стандартными  UITestControl.Exists


(TreaNT) #3

Актуально ещё?


(anton_matyushkin) #4

Актуально ещё?

Уже разобрался.