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

Java · Додаткові матеріали · 3:40–8:34

Поле test class і підказки IntelliJ IDEA

`baseUrl` переноситься в тіло класу, після чого його можуть використовувати кілька test methods. IntelliJ IDEA підсвічує помилки та зайві конструкції, пропонує quick fixes через `Alt+Enter` або `Option+Enter` і допомагає спростити ініціалізацію. Жовті підказки варто читати, але застосовувати лише після розуміння запропонованої зміни.

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

Java · Основний курс · 31:20–41:30

Налагодження переходу до редактора

Для навігації по camelCase-ідентифікаторах в IntelliJ IDEA вмикається рух курсора за CamelHumps. Це дає змогу переходити й редагувати окремі слова в довгих назвах методів, не виділяючи весь ідентифікатор. Під час першого запуску Selenide не може клікнути на рядок редактора. Через breakpoints, консольний звіт і повторний огляд DOM з'ясовується коренева причина: на сторінці два `iframe`, а локатор вибрав не той. Після уточнення локатора тест переходить у потрібний фрейм і клік виконується; урок підкреслює, що перед зміною методу кліку треба перевірити правильність контексту й фактичний елемент.

Selenide: iframe, fluent interface та конфігурація →

Java · Основний курс · 3:20–7:40

Full Line completion і GitHub Copilot

В IntelliJ IDEA вмикається Full Line completion для Java. На відміну від звичайного completion, яке пропонує проіндексовані класи, методи й доступні члени об'єктів, Full Line completion намагається запропонувати цілий рядок на основі контексту коду. Викладач описує цю модель як локальну й радить спочатку попрацювати саме з нею. GitHub Copilot може запропонувати кілька рядків, метод або клас, але така генерація не гарантує коректності. Для повторюваних Page Objects і тестових дій підказки можуть бути доречними, проте кожну пропозицію потрібно читати й перевіряти. У відео також наголошено на відмінності між локальною моделлю та передаванням контексту сторонньому сервісу.

Selenide: iframe, fluent interface та конфігурація →

Java · Основний курс · 39:02–43:10

Методи Java та генерація за місцем виклику

Показано, що Java-клас успадковує методи `Object`, зокрема `equals`, `hashCode`, `getClass`, `toString`, `notify`, `wait` та інші. Підказки IntelliJ IDEA відображають ці успадковані методи навіть тоді, коли вони не оголошені безпосередньо в Page Object. Новий метод можна спочатку викликати в тесті, а потім створити в цільовому Page Object через quick fix `Create method`. IDE переносить назву й параметри з місця виклику, після чого до згенерованого методу додається реальна реалізація. У контексті Java викладач уточнює, що такі функції класу коректно називаються методами.

Page Objects: рефакторинг тестів →

Java · Основний курс · 46:00–48:35

Огляд умов для колекцій через IDE

У `CollectionCondition` є різні очікування для розміру й текстів, зокрема exact/case-sensitive варіанти та перевірки текстів без залежності від порядку. Не потрібно запам’ятовувати весь перелік: у IntelliJ IDEA можна перейти до declaration або відкрити quick documentation клавішею `F1` і прочитати точний контракт. Для дуже великої колекції одна масивна декларація очікуваних текстів незручна. Краще вибрати конкретне правило, отримати потрібні значення або перевіряти елементи по одному, ніж уміщувати всі можливі assertions в один виклик.

Selenide: колекції елементів і стан браузера →

Java · Основний курс · 30:00–39:02

Рефакторинг сторінки зі списком проєктів

Сторінка після авторизації отримує назву `ProjectsPage`, бо вона містить список, пошук і вибір проєктів. Її `open` викликає Selenide явно: випадковий виклик однойменного методу самого класу створив би рекурсію та завершився `StackOverflowError`. IntelliJ IDEA підказує кваліфікувати виклик через `Selenide`. Методи відкриття, пошуку та вибору проєкту переносяться в `ProjectsPage`, а тест зберігає один інстанс цього класу. Викладач розрізняє declaration змінної та initialization об'єкта, використовує автодоповнення і після кожного кроку повторно запускає тест. Для базового URL попереджається про ризик випадкових подвійних слешів.

Page Objects: рефакторинг тестів →

Java · Основний курс · 8:44–15:33

Page Object, пакети та доступність залежностей

Page Object визначається як клас, що описує логічну частину сторінки: цілу сторінку або окремий повторно використовуваний компонент. Для початкового варіанта кожна сторінка отримує окремий клас із діями, доступними користувачеві на ній. У `src/main/java` створюється окрема структура пакетів для вебчастини та сторінок. Після перенесення методу авторизації Selenide стає недоступним у production-коді, бо залежність оголошена через `testImplementation`; її змінюють на `implementation`, тоді як test runner залишається лише в тестовій області. Після синхронізації Gradle IntelliJ IDEA може додати потрібні імпорти через quick fix; невикористані імпорти потрібно регулярно прибирати.

Page Objects: рефакторинг тестів →

Java · Сесії: AMA та PMP · 0:00–3:30

Що робить `.gitignore`

`.gitignore` описує файли й каталоги, які Git не має додавати до індексу як нові untracked-зміни. Зазвичай проєктний файл лежить у корені репозиторію. IDE також може мати власні налаштування або ignore-файли, але вони не замінюють правила Git, які мають однаково працювати для всіх учасників і в CI. У PyCharm, IntelliJ IDEA, WebStorm або VS Code плагін для ignore-файлів може дати шаблони та зрозуміле підсвічування. Навіть після `git add .` Git пропустить нові файли, які відповідають правилам `.gitignore`. Водночас правило не прибирає файл, якщо Git уже почав його відстежувати: такий файл треба окремо вилучити з індексу без видалення локальної копії.

Гітігнор та як працювати з гітом та не помилитись →

Java · Основний курс · 0:00–5:20

Packages, MVC і resource controllers

Код API automation виноситься в package `api`, а існуючі UI-теси — в `web`. Для подальшої структури автор адаптує ідею MVC: test залишається місцем сценарію та перевірок, DTO описують data model, а controllers містять API operations. Для кожного ресурсу створюється окремий controller, наприклад projects або auth. Дуже великий resource можна розділити на кілька controllers. Під час перейменування Java class в IntelliJ IDEA потрібно використовувати Rename refactoring (`Shift+F6`), щоб назви file і public class залишилися однаковими.

API-автоматизація: MVC і Jackson →

Java · Додаткові матеріали · 2:16–4:02

Застарілі indexes і Invalidate Caches

JetBrains IDE індексує Git, Java, Gradle, Maven, Node.js та інші встановлені tools. Після зміни версій без restart IDE може продовжити використовувати старі indexes і показувати хибні errors або не бачити dependencies. У такому випадку можна використати `Invalidate Caches`, очистити filesystem/VCS indexes і перезапустити IDE.

Діагностика Java-проєкту в JetBrains IDE →
Запитати в чаті про «IntelliJ IDEA» →