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

Терміни, нюанси та джерела

Приклад коду · 2:55

Окремий context для Free-користувача

Fixture створює isolated BrowserContext із наперед підготовленим Free-state; Enterprise-state має бути окремою fixture або parameterized input із чіткою очікуваною роллю.

Тест стартує у визначеному Free-контексті без умовного розгалуження за випадковим UI-станом.

На сторінці може бути різний контент — що робити? →

Приклад коду · 0:00

Відтворюваний typed test object

Stdlib-приклад показує typed object, valid range і fixed seed без додаткової dependency.

Друкується відтворюваний UserData, а assertion підтверджує базові constraints.

Тестові дані для автотестів →

Приклад коду · 3:30

User-facing locator у незалежному Playwright test

Playwright Test надає isolated page, а locators виражають user-facing contract через label, role і accessible name.

Test проходить лише проти application, що має наведений login contract.

Що має вміти та знати мідл автоматизатор →

Java · Сесії: AMA та PMP · 8:16–11:51

Для чого потрібен `__init__.py`

Наявність `__init__.py` робить директорію звичайним Python package і може визначати його зручний публічний API через imports або `__all__`. Це допомагає IDE, імпортам і читачеві зрозуміти межу модуля. Сучасний Python також підтримує namespace packages без `__init__.py`, тому файл не є абсолютною вимогою для кожної імпортованої директорії. У навчальному проєкті явний package зазвичай простіший і передбачуваніший.

__init__, self, page та принципи ООП →

Java · Додаткові матеріали · 1:21:00–1:27:16

Спільні parsers для `int` і `double`

Універсальний `parseIntegerFromString` переноситься до окремого utilities package як `public static` method і підключається static import. Поруч створюється parser для `double`, щоб обробляти UI-значення на кшталт coverage з десятковою частиною. Відео також пояснює різницю між primitive `int` і reference type `Integer`, статичними methods та methods, які повертають значення замість `void`.

Маленький рефакторинг і тестові дані у Java →

Java · Advanced: API-автоматизація · 1:40:00–1:55:00

Generated fluent asserts, API-first і contract testing

Generator може створити `assertThat(pet).hasName(...)`, але import conflicts і plugin age можуть звести користь нанівець. Сучасний AssertJ already має rich extracting/recursive/custom assertion APIs, тому generation варта лише для real repeated domain vocabulary. API-first підхід робить specification upstream input для backend і clients. Jackson deserialization вже перевіряє shape/types, але не доводить business semantics. Окрема contract-testing infrastructure потрібна, коли spec/code generation не закривають real producer–consumer risk.

AssertJ: виразні асерти та їх генерація →
Запитати в чаті про «import» →