iampolshin / polis-vk-autotesting

Домашние задания курса "Автоматизированное тестирование" от VK Образования
0 stars 0 forks source link

Ревью #1

Open eliizaveta opened 1 year ago

eliizaveta commented 1 year ago

Я в тамтам https://tt.me/riinj

Лучше не делать переход на страницу по ссылке внутри конструктора. Как мы можем попасть на страницу логина? Например заходим на сайт, тогда это ок. Но еще мы можем нажать выйти со своей страницы и тоже попасть на страницу логина, но затем в конструкторе произойдет еще один переход. Кроме того, что он окажется лишним, мы можем пропустить баг, что, например, у нас получится выйти на какую-то другую страницу вместо логина. https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/AuthorizationPage.java#L21-L24


Теоретически мы проверили, что эти элементы есть на странице, но за время, что мы начнем с ними взаимодействовать они могли пропасть из зоны видения, лучше проверять видимость элементов прямо перед взаимодействиями и еще писать к ним сообщения об ошибке для более понятного вывода $(ELEM).shoudBe(visible.because("Нет элемента")).click() https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/AuthorizationPage.java#L34-L36


Почему у первого элемента нет проверки на видимость :( https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/MainPage.java#L50-L53


Чтобы не переписывать везде этот метод, можно сделать базовую страницу, от нее наследовать все страницы, один раз его там переопределить и больше за собой не тащить https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/MainPage.java#L20-L23


Главный вопрос - выполняется ли вообще этот метод? Что сделать, чтобы он вызывался? https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/MainPage.java#L25-L28


Можно в одну строку https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/pages/MessagePage.java#L31-L32


Я бы спрятала это, в какой нибудь базовый тестовый класс https://github.com/iampolshin/polis-vk-autotesting/blob/f53cc6e67d243da3a94e226466966fb11b9f783f/src/test/java/OKTest.java#L32-L36

Сейчас все тесты в одном классе, возможно, из-за того, что у них общее предусловие? Я бы разделила тесты по логическим группам на классы (мы кстати придерживаемся стиля один тест = один класс, хотя сейчас тесты маленькие и в этом нет смысла, можно сразу привыкать к такому стилю, так как на самом деле тесты должны быть независимыми и чем дальше, тем сложнее они становятся) Так вот, чтобы у тестов было это общее предусловие и общее завершение (переход по ссылке на одноклассники и завершение сессии после), стоит использовать базовый тестовый класс и наследовать тесты от него

iampolshin commented 1 year ago

Вот фикс: https://github.com/iampolshin/polis-vk-autotesting/commit/7accd3b0e1b776305f0dec97b202efbb8fa428d8

p.s. Я не понял, как так сделать. Пробовал через "." сделать цепочку, но тщетно

image
eliizaveta commented 1 year ago

Вот фикс: 7accd3b

p.s. Я не понял, как так сделать. Пробовал через "." сделать цепочку, но тщетно image

да, действительно, не увидела, что там поиск нескольких элементов

eliizaveta commented 1 year ago

По исправлениям

Лучше выносить в BaseTest https://github.com/iampolshin/polis-vk-autotesting/blob/7accd3b0e1b776305f0dec97b202efbb8fa428d8/src/test/java/CorrespondenceListTest.java#L15


Лучше добавлять сообщения об ошибке https://github.com/iampolshin/polis-vk-autotesting/blob/7accd3b0e1b776305f0dec97b202efbb8fa428d8/src/test/java/CorrespondenceListTest.java#L18


Достаточно сделать в базовой странице такие действия и не тащить за собой https://github.com/iampolshin/polis-vk-autotesting/blob/7accd3b0e1b776305f0dec97b202efbb8fa428d8/src/test/java/pages/AuthorizationPage.java#L19-L25


Почему мы делаем это в конструкторе, а не тесте? https://github.com/iampolshin/polis-vk-autotesting/blob/7accd3b0e1b776305f0dec97b202efbb8fa428d8/src/test/java/pages/MessagePage.java#L23-L24

и это https://github.com/iampolshin/polis-vk-autotesting/blob/7accd3b0e1b776305f0dec97b202efbb8fa428d8/src/test/java/pages/MainPage.java#L27-L28