Задать вопрос
nullnull
@nullnull

Как правильно использовать Given, when и then в UI тестировании вводимых без данных?

Я делаю собственный проект, который тестирует UI. Время от времени читаю статьи и наткнулась на одну статью про GWT. В этой статье посыл был таким, что все три части обязательны. Но у меня возник вопрос: в своём проекте я практически не использую given, насколько это плохо?

Если я правильно поняла, то given - "даны такие-то значения", но в моих тестах given крайне редко получается использовать, потому что там нужно много прощёлкать (ставить галочки, нажимать на кнопку и т.д.) чтобы "ввести какие-то данные". Т.е. глядя на примеры, допустим:

Given: у меня есть число 3 и 5
When: я их складываю
Then: результат равен 8

я не совсем понимаю, как в моём случае делать given.
Проблема ещё в том, что нельзя сделать такую реализацию:

Given: нажми на кнопку А
Given\И: нажми на кнопку Б

Then: создался объект C

Вопрос: нормально ли при тестировании UI не использовать Given, если ввод данных это взаимодействие с интерфейсом? Т.е. нельзя установить значения.

Если нужно всегда использовать given, то приведите пример как это сделать правильно, чтобы протестировать авторизацию пользователя на форме логина (есть текстовое поле с логином и текстовое поле с e-mail и кнопка вход).
  • Вопрос задан
  • 908 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
lxsmkv
@lxsmkv
Test automation engineer
Представьте, что ваш тест это эксперимент (над приложением) и попытайтесь прочитать его так:
При условии что
GIVEN и GIVEN а также GIVEN,
Если я WHEN
To тогда должно произойти THEN .

Т.е. Given позволяет вам сократить описание предварительной подготовки к тесту
до описания желаемого состояния приложения, например:

При условии, что пользователь уже залогинен.
При условии, что корзина пуста
При условии, что поле выбрана опция такая-то.
При условии, что в поле А введено значение Х а в поле Б значение Y

А потом вы переходите к самому эксперименту.

When: я нажимаю на кнопку А
When: и нажимаю на кнопку Б
Then: создается объект C

В данном случае скорее всего условие это нахождение на какой-то странице, или то, что выбрана какая-то секция приложения.
Вы же не можете "в воздухе" нажать кнопку A и Б, правильно? Given это не действие, это состояние.

Используя Given вы как бы говорите мне все равно каким образом это состояние будет достигнуто, мне важен результат, потому что от него отталкивается мой эксперимент.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Вопрос: нормально ли при тестировании UI не использовать Given, если ввод данных это взаимодействие с интерфейсом? Т.е. нельзя установить значения.

Да. Просто в Given пишешь какие-нибудь предусловия. Если их нет - не пишешь.

Будет что-то типа:
Given: ---
When: Я нажимаю кнопку A, затем нажимаю кнопку Б
Then: Создался объект C
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы