Перейти к содержимому

Почему в каждом автотесте куча await? | Асинхронность JS/TS | AQA за 60 дней #4

Сергей Лебедев | QA

0:00 / 0:00

Почему в каждом автотесте куча await? | Асинхронность JS/TS | AQA за 60 дней #4

637 просмотров · Трансляция закончилась 3 недели назад
Сергей Лебедев | QA
3,9 тыс. подписчиков
637 просмотров · Трансляция закончилась 3 недели назад
👥 ПРИСОЕДИНЯЙСЯ К МАРАФОНУ: 💬 Чат марафона: https://t.me/+NJgJrdqfLLozMTY6 📢 Telegram-канал Сергея: https://t.me/qabigtech 🎓 Индивидуальная проверка ДЗ (Boosty): https://boosty.to/lebedses/purchase/3... В прошлом уроке мы научились читать чужой автотест, но слова `async` и `await` сознательно отложили. Сегодня закрываем их — и делаем следующий шаг: учимся писать и править код. Разберём функции, Promise и почему без `await` тест врёт о порядке шагов, прямо в эфире напишем в реальный тест две функции — фабрику тестовых данных и шаг регистрации, — а потом покажем, как аккуратно дописать в этот тест третьего участника: второго гостя, который бьётся за тот же слот и получает ошибку. Это и будет домашка. ⏰ ТАЙМКОДЫ 00:00 Вступление — план эфира: функции и асинхронность 05:47 Функции: аналогия глагол и существительное 10:57 Асинхронность в Playwright: зачем нужна 16:14 Промисы: аналогия с заказом кофе 21:00 Async await на практике в автотесте 24:16 Забытый await — классическая ошибка и флаки-тесты 32:00 Рефакторинг дублирующегося кода регистрации 37:33 Лайвкодинг функций makeUser и registerUser 55:11 Как безопасно править чужой код 1:01:35 Контексты браузера для разных пользователей 1:04:01 Гонка за слот бронирования: кейс для домашки 1:14:19 Разбор домашки и новое задание с третьим участником 📌 ЧТО РАЗБЕРЁМ В ЭТОМ УРОКЕ: • Функции и стрелочные функции — то, что не успели в прошлом уроке • Promise, async/await и что происходит, если забыть `await` • Порядок шагов в автотесте и почему он определяется ожиданиями • Пишем прямо в эфире две функции в реальный тест: фабрику данных и шаг регистрации • Метод правки чужого автотеста: новый участник, свой контекст, негативная проверка 📝 ДОМАШНЕЕ ЗАДАНИЕ: Взять `tests/e2e/booking-flow.spec.ts` из репозитория курса и дописать в него третьего участника — второго гостя, который пытается забронировать тот же слот и видит ошибку. Чек-лист из 7 пунктов — в закрепе чата. Запускать тест не нужно, присылаем код в чат марафона. 🔗 ПОЛЕЗНЫЕ ССЫЛКИ: MDN — Promise: https://developer.mozilla.org/ru/docs... MDN — async function: https://developer.mozilla.org/ru/docs... MDN — Функции: https://developer.mozilla.org/ru/docs... Playwright docs — Auto-waiting: https://playwright.dev/docs/actionabi... Playwright docs — Browser contexts: https://playwright.dev/docs/browser-c... Репозиторий курса: https://github.com/lebed52/pomidorqa-... #typescript #javascript #asyncawait #promise #playwright #автоматизациятестирования #QA #тестировщик #SDET #марафон