Ответы пользователя по тегу Тестирование ПО
  • Грамотно ли я написал тестовый фреймворк selenium+pageObject+testng (нужна критика)?

    SlavikF
    @SlavikF
    Что я увидел не так:

    О том, что такое паттерн Page Object в Священном Писании не записано, поэтому одни считают так правильно, а другие - иначе.

    Основная идея Page Object pattern: низкоуровневое взаимодействие с браузером выносится в Page Objects, а в тестах остаётся в основном бизнес-логика.

    В вашем случае, в методе preCondition вы открываете страницу браузера:
    driver.get("https://mail.ru/");
    Более правильно перенести это в конструктор LoginPage.

    Методы typeLogin, clickEnterPasswordButton, ... возвращают "this". Я это часто вижу. Но смысла в этом мало. Это может иметь какой-то смысл, если действие (нажатие клавиши, клик на кнопку), которое возвращают другую страницу (другого типа), да и в таких случаях зачастую можно не заморачиваться с этим.

    В остальном тесты, в свете page object pattern выглядит нормально.

    В свете логики тестов, у deleteEmail похоже есть предположение, что в ящике уже есть какое-то количество emails. А если нету? тест будет валиться.

    Thread.sleep - это обычно сразу красный флаг. Это 100% признак ненадёжного теста. В местах, где надо ждать (анимации, загрузки, ...) нужно поллить. Можно вот так:
    https://www.selenium.dev/selenium/docs/api/java/or...
    Но на самом деле вариантов много.

    Ещё вы добавили chromedriver.exe в репу.
    Бинарники в репе - это плохо.
    В вашем случае может помочь вот эта библиотека:
    https://github.com/bonigarcia/webdrivermanager

    Ещё у вас репе debug.log
    Его в репе быть не должно. Нужно убрать через .gitignore
    Да .idea туда же.

    Ещё режет глаза слово "popap". Это прям сразу видеть человек английских не знать.
    Ответ написан
    Комментировать