Python мануфактураJavaDesign Patterns для автоматизаторів

Design Patterns для автоматизаторів · 16:31–20:45

OOP як підготовка до патернів

Коли тестів стає багато й код потрібно розносити по файлах, автор переходить до OOP. Наслідування дає змогу повторно використати поведінку й дані батьківського класу, поліморфізм — перевизначити або доповнити поведінку, а інкапсуляція — приховати технічні деталі за читабельними публічними методами. Надмірне перевантаження та методи з багатьма аргументами можуть означати, що метод уже виконує іншу задачу, ніж обіцяє його назва. Публічний API тестового класу має спочатку говорити мовою сценарію, а дрібні технічні операції можна приховувати поступово.

1. Патерни проєктування для UI тестів (перезапис) →

Design Patterns для автоматизаторів · 1:00:00–1:07:10

`ProductList` і `ProductItem` замість великого Page Object

Якщо всі дії з карткою — перевірка назви, ціни, рейтингу, availability, додавання до кошика й відкриття товару — залишити в `SearchResultPage`, клас швидко розростеться, а на сторінці категорії цю поведінку доведеться дублювати. Тому виділяються `ProductList` і `ProductItem`. `SearchResultPage` та `ProductCategoryPage` можуть повторно використовувати поведінку списку, зберігаючи власні перевірки на кшталт title або breadcrumbs. `ProductList` також отримує перевірку кількості елементів, яку можна застосувати до pagination, а `ProductItem` інкапсулює дії з конкретною карткою.

1. Патерни проєктування для UI тестів (перезапис) →
Запитати в чаті про «inheritance» →