Почему в каждом автотесте куча 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 #марафон