GithubHelp home page GithubHelp logo

tests's People

Contributors

jbisss avatar

Watchers

 avatar

tests's Issues

Ревью

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

1

Тесты всегда начинаются с анонимной страницы ОК, предлагаю здесь сделать постоянную ссылку на ок, и добавить аннотации Before и After чтобы методы отрабатывали автоматически перед и после каждого теста

public void open(String s){
com.codeborne.selenide.Selenide.open(s);

т.е. вот это перенести в бейзтест

@BeforeAll
static void openPage(){
base.open("https://ok.ru");
}

@AfterAll
static void clearCookies(){
base.close();
}

2

Локаторы выносим в константы
Проверяем видимость элемента перед действием с ним .shouldBe(visible.because("Нет кнопки ...").click()

$(By.xpath("//*[@id='field_email']")).setValue(email);

3

Не оборачивать проверки, ассерты могут быть в тестах
Добавлять сообщения в ассерты

public void checkUsername(String expectedUsername){
assertEquals(expectedUsername, this.takeUserName());
}
public void checkNotLogged(boolean expectedResult){
assertFalse(expectedResult);

4

Оформить комментарии как джавадоки

5

Использовать наследование

6

Логины, пароли и тд в константы

.setEmail("technoPol10")
.setPwd("zoloto1234")

7

Зачем два BaseTest? Можно переделать структуру проекта - все тесты в одном пакете, все страницы в другом пакете, внутри пакетов можно еще сделать деление по пакетам - логины, группы и тд, а Base классы оставить без дальнейшего разделения

8

Создаем страницы по мере надобности

BASE_GROUP_PAGE = new BaseGroupPage();

9

Убираем в методы в пейджах, уносим из теста (PageObject!!)

$(By.xpath("//div[@class=\"tico ellip\"]"));

Локаторы в пейджи

private static final SelenideElement PROFILE_PHOTO =
$(By.xpath("//div[@class=\"tico ellip\"]"));

10

Не раскрыта суть аннотации, тут стоило показать как можно интересно использовать @beforeeach, добавляя условия на каждом уровне
https://junit.org/junit5/docs/current/user-guide/#writing-tests-nested

Тесты должны быть независимыми!!!

$(PROFILE_PHOTO).shouldBe(Condition.visible);

11

Проверки делаем через ассерты

$(PROFILE_PHOTO).shouldBe(Condition.visible);

12

Используем ожидания каких то конкретный событий, всегда лучше ждать какое то событие конкретное, давай разберемся почему тут нужна пауза и чего нам ждать вместе если что
https://viclovsky.github.io/разное/2019/02/06/thread-sleep/

13

В афтер методах стараемся сделать так логику, что даже если тест упадет по пути, афтер метод не валил тест дополнительно, т.е. тут мы в тесте можем даже не дойти до этой страницы, может быть все упадет на бифоре, и тогда афтер тоже упадет

@AfterAll
public static void clearCookies(){
BASE_GROUP_PAGE
.openGroupPage()
.dropDownGroup();
BASE_TEST.close();
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.