Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как можно создавать страницы при использовании паттерна Page Object?(java)

page-object
Теги: #<Tag:0x00007f7b64ca87f8>

(Вячеслав Бабицкий) #1

Пока только начало проекта,но уже имеется много страниц и появилась серьёзная архитектурная дыра. В виду небольшого опыта,не очень понимаю как создавать их правильно. Наверняка уже есть много хороших практик и изящных решений.
На данный момент сделано у меня костыльно,а именно в базовом тестовом классе,от корого все тесты наследуются,у меня создаются страницы и я искренне понимаю,что это ужасно!)


(Dzmitry Ihnatsyeu) #2

Я вам советую изучить ООП и основые принципы. Любой паттерн дизайна, которым и является page object, основывается на принятых подходах объектного проектирования.
Отличная книжка чтобы начать это Паттерны проектирования от издательства HeadFirst O’Relly


(Вячеслав Бабицкий) #3

Это да,в ООП я пока не очень силён. Параллельно изучаю и читаю,но всё же к тому моменту как я всё освою эта дыра сильно разрастётся.


(Dzmitry Ihnatsyeu) #4

в классах PageObject храните только операции непостредственного взаимодествия со страницей: нажатие на кнопку, ввод данных в поле, получение данных из таблицы. Для каждой из страниц вы можете создать классы сервисов, которые будут реализовывать бизнес операции на странице. Классы же тестов должны знать какие бизнесс операции дергать на каждой странице для выполнения теста. Этот подход напоминает паттерн MVP. Так вы не будете смешивать вашу модель с логикой