jbisss / tests Goto Github PK
View Code? Open in Web Editor NEWFirst test
First test
Я в тамтам https://tt.me/riinj
Тесты всегда начинаются с анонимной страницы ОК, предлагаю здесь сделать постоянную ссылку на ок, и добавить аннотации Before и After чтобы методы отрабатывали автоматически перед и после каждого теста
Tests/src/test/java/org/login_tests/BaseTest.java
Lines 6 to 7 in 480b7c9
т.е. вот это перенести в бейзтест
Tests/src/test/java/org/login_tests/MainTest.java
Lines 13 to 16 in 480b7c9
Tests/src/test/java/org/login_tests/MainTest.java
Lines 39 to 42 in 480b7c9
Локаторы выносим в константы
Проверяем видимость элемента перед действием с ним .shouldBe(visible.because("Нет кнопки ...").click()
Не оборачивать проверки, ассерты могут быть в тестах
Добавлять сообщения в ассерты
Tests/src/test/java/org/login_tests/LoginPage.java
Lines 32 to 36 in 480b7c9
Оформить комментарии как джавадоки
Использовать наследование
Логины, пароли и тд в константы
Tests/src/test/java/org/login_tests/MainTest.java
Lines 23 to 24 in 480b7c9
Зачем два BaseTest? Можно переделать структуру проекта - все тесты в одном пакете, все страницы в другом пакете, внутри пакетов можно еще сделать деление по пакетам - логины, группы и тд, а Base классы оставить без дальнейшего разделения
Создаем страницы по мере надобности
Убираем в методы в пейджах, уносим из теста (PageObject!!)
Локаторы в пейджи
Tests/src/test/java/org/enter_the_group/MainTest.java
Lines 27 to 28 in 480b7c9
Не раскрыта суть аннотации, тут стоило показать как можно интересно использовать @beforeeach, добавляя условия на каждом уровне
https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested
Тесты должны быть независимыми!!!
Проверки делаем через ассерты
Используем ожидания каких то конкретный событий, всегда лучше ждать какое то событие конкретное, давай разберемся почему тут нужна пауза и чего нам ждать вместе если что
https://viclovsky.github.io/разное/2019/02/06/thread-sleep/
В афтер методах стараемся сделать так логику, что даже если тест упадет по пути, афтер метод не валил тест дополнительно, т.е. тут мы в тесте можем даже не дойти до этой страницы, может быть все упадет на бифоре, и тогда афтер тоже упадет
Tests/src/test/java/org/enter_the_group/MainTest.java
Lines 48 to 54 in 480b7c9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.