Prog Academy
RU UA

Курс за підпискою

Тестування JavaScript: unit-тести, TDD і моки

Пишіть тести, які ловлять справжні помилки, — і код, якому можна довіряти

  • 9 модулів
  • 25+ практичних завдань
  • Автоматична перевірка
  • Українською

Отримати доступ до курсу

Курс за підпискою · Навчання у власному темпі · Без дзвінків і консультацій

Про курс

Що це за курс?

Курс для тих, хто вже пише на JavaScript і хоче перестати перевіряти програму вручну після кожної зміни. Ви навчитеся писати автоматичні тести вбудованими інструментами Node.js — node:test і node:assert, — підбирати граничні випадки, працювати за TDD, підміняти залежності заглушками, шпигунами й фейковими таймерами та відрізняти тест, який справді захищає код, від тесту, який лише «зеленіє».

Аудиторія

Для кого цей курс?

  • Перевіряєте код вручну

    Напишете автоматичні тести вбудованими node:test і node:assert, які повторюватимуть перевірки за вас.

  • Тести «зеленіють», а баги проходять

    Навчитеся підбирати граничні випадки й писати тести, які падають на прихованих версіях коду з типовими помилками.

  • Код залежить від мережі й таймерів

    Підмінятимете залежності заглушками, шпигунами й mock.fn, а час — фейковими таймерами, щоб тести були швидкими й стабільними.

Спершу потрібна підготовка

Курс спирається на знання, позначені нижче як обов’язкові.

Потрібно знати

  • Курс «Основи програмування на JavaScript» — функції, масиви, об'єкти, методи масивів, try/catch.

    Детальніше
    • Як підключати модуль через require, пояснено в першому розділі.
    • Для розділів про асинхронний код стане в пригоді курс «Просунутий JavaScript» (Promise, async/await), але потрібний мінімум ми нагадаємо.
    • Код виконується у вбудованому редакторі; браузерні й end-to-end тести (Cypress, Playwright) у курс не входять.

Якщо цих знань ще немає — пройдіть курси за порядком:

  1. З нуля
  2. Обов’язково Основи програмування на JavaScript
  3. Бажано Просунутий JavaScript
  4. Цей курс Тестування JavaScript: unit-тести, TDD і моки

Результат

Що ви навчитеся робити

писати перевірки assert.equal, deepEqual, throws, rejects і знати, коли яку

організовувати тести через test, describe і хуки, тестувати асинхронний код

знаходити граничні випадки й класи еквівалентності, писати табличні тести

працювати в циклі red → green → refactor

використовувати заглушки, шпигуни, фейки й mock.fn / mock.method

тестувати код із таймерами й датами через фейковий час

проєктувати код так, щоб його було легко тестувати (впровадження залежностей)

оцінювати якість тестів: покриття, мутації, крихкі тести

Формат

Як влаштоване навчання?

У більшості завдань ви пишете тести до готового коду. Перевірка запускає ваші тести не лише на правильній реалізації, а й на прихованих версіях із типовими помилками: тест зараховано, якщо він проходить на правильному коді й падає на кожній версії з помилкою. Так само працює мутаційне тестування в реальних командах. В інших завданнях — навпаки: тести дано, і ви пишете код, щоб вони пройшли, як у справжньому TDD.

  • Теорія

    17 уроків з прикладами

  • Практика в браузері

    25+ завдань з автоматичною перевіркою

  • Тести

    9 тестів для самоперевірки

  • Власний темп

    Онлайн на my.prog.academy, без встановлення програм

Платформа Prog Academy

Більше, ніж доступ до курсу

Курс проходить на платформі Prog Academy — разом із ним ви отримуєте AI-помічника й інструменти для пошуку першої роботи в IT.

Навчання

90% практики

Ви вчитеся, виконуючи завдання: кожну нову тему одразу застосовуєте на практиці, а не лише читаєте теорію. Завдання перевіряються автоматично, просто в браузері.

AI-помічник з навчання

Ви не залишаєтеся наодинці з матеріалом

Щось незрозуміло або застрягли на завданні — запитайте просто в уроці. Помічник пояснить тему простішими словами, відповість на питання, допоможе розібратися в умові завдання й підкаже наступний крок, знайде потрібне в матеріалах курсу. Він знає, який урок ви проходите, і пам’ятає розмову.

Кар’єра

  • Сертифікат після завершення курсу

    Успішно пройшли курс — отримуєте сертифікат і в один клік додаєте його в профіль LinkedIn.

  • Конструктор резюме

    Резюме англійською та українською — просто на платформі. Ваші курси й сертифікати додаються в нього в кілька кліків.

  • База вакансій

    Junior-вакансії та стажування в одному місці — з добіркою під курси, які ви проходите.

Уся платформа — в одному акаунті

  • Усі ваші курси
  • Прогрес по кожному курсу
  • Навчання у власному темпі
  • Нічого не треба встановлювати

Програма

Програма курсу

9 модулів, 25+ практичних завдань з автоматичною перевіркою і 9 тестів. Відкрийте модуль, щоб побачити всі теми.

Розділ 1 — Навіщо тести і перші перевірки 2 уроки · 3 практики · 1 тест

Що таке автоматичний тест і що він захищає, модулі require, node:assert/strict: equal, deepEqual, ok, throws.

  • Теорія Навіщо програмісту автоматичні тести
  • Теорія Модулі та node:assert: перші перевірки
  • Практика Тести для splitInteger
  • Практика Виправити непрацюючі перевірки
  • Практика Перевірка помилок у parseAge
  • Тест Навіщо тести і перші перевірки
Розділ 2 — node:test: структура тестів, хуки й асинхронні тести 2 уроки · 3 практики · 1 тест

test і describe, хуки beforeEach/afterEach і before/after, skip і todo, звіт про запуск; Promise і async/await у тестах, assert.rejects.

  • Теорія Тести, групи й хуки в node:test
  • Теорія Асинхронні тести: Promise, await і assert.rejects
  • Практика Кошик покупок і beforeEach
  • Практика Асинхронний loadProfile
  • Практика Групи тестів для бібліотеки
  • Тест Node:test і асинхронні тести
Розділ 3 — Граничні випадки, класи еквівалентності й табличні тести 2 уроки · 3 практики · 1 тест

Як вибирати вхідні дані для тестів: класи еквівалентності, граничні значення, порожнє/одне/багато, особливі значення; табличні тести й очікування, записані вручну.

  • Теорія Класи еквівалентності й граничні значення
  • Теорія Табличні тести й чесні очікування
  • Практика Межі тарифів доставки
  • Практика Правила пароля
  • Практика Дні в місяці
  • Тест Граничні випадки й табличні тести
Розділ 4 — TDD: спершу тест 2 уроки · 4 практики · 1 тест

Цикл red → green → refactor, найменший крок, «fake it», тріангуляція, рефакторинг під зеленими тестами, тест як виконувана специфікація; коли TDD допомагає, а коли ні.

  • Теорія Цикл red → green → refactor
  • Теорія Тест як специфікація: рефакторинг і межі TDD
  • Практика Практика TDD: ізограма
  • Практика Практика TDD: решта монетами
  • Практика Практика TDD: відновити повні імена
  • Практика Практика TDD: калькулятор заправки
  • Тест TDD
Розділ 5 — Тестові двійники: заглушки, шпигуни, фейки 2 уроки · 3 практики · 1 тест

Навіщо ізолювати код від мережі, пошти й платежів; stub, spy, fake і mock; mock.fn, mock.method і перевірка викликів у node:test; залежності як параметри.

  • Теорія Навіщо підміняти залежності: stub, spy, fake, mock
  • Теорія mock.fn і mock.method у node:test
  • Практика Шпигун для нагадувань про рахунки
  • Практика Заглушка платіжного сервісу
  • Практика Практика TDD: власна фабрика шпигунів
  • Тест Тестові двійники
Розділ 6 — Час і асинхронність: фейкові таймери 2 уроки · 3 практики · 1 тест

Чому справжній час робить тести повільними й нестабільними, mock.timers: enable, tick, runAll, setTime, керування Date, таймери разом із промісами, впровадження годинника.

  • Теорія Фейкові таймери: тест, який не чекає
  • Теорія Таймери разом із промісами і впровадження годинника
  • Практика Тести для debounce
  • Практика Термін дії токена
  • Практика Повтор із паузою, що зростає
  • Тест Фейкові таймери
Розділ 7 — Тестований дизайн: залежності та фейки 2 уроки · 3 практики · 1 тест

Жорстко зашиті залежності проти впровадження залежностей, фабрики з колабораторами, фейковий репозиторій у пам'яті, заглушки для fetch, шпигуни лише для взаємодій, граничні й помилкові шляхи.

  • Теорія Залежності: зашиті всередину чи передані ззовні
  • Теорія Фейк, заглушка, шпигун: що підставити і що перевіряти
  • Практика Реєстрація з фейковим репозиторієм
  • Практика Заглушка для погодного API
  • Практика Сума замовлення з курсом валют
  • Тест Тестований дизайн
Розділ 8 — Якість тестів: покриття, мутації, крихкі тести 2 уроки · 3 практики · 1 тест

Покриття рядків і гілок, мутаційне тестування, крихкі й нестабільні тести, поведінка замість реалізації, хороші назви тестів.

  • Теорія Покриття коду і мутаційне тестування
  • Теорія Крихкі й нестабільні тести
  • Практика Переписати крихкі тести
  • Практика Вбити всіх мутантів
  • Практика 100 % рядків — ще не все
  • Тест Якість тестів
Розділ 9 — Підсумковий проєкт 1 урок · 3 практики · 1 тест

Тестування цілого модуля: список поведінок, вибір випадків, двійники, структура describe, перевірка, що кожне правило покрито. Склад, бібліотека з годинником, обмежувач запитів за TDD.

  • Теорія Як протестувати цілий модуль
  • Практика Проєкт: склад
  • Практика Проєкт: бібліотека з годинником
  • Практика Проєкт за TDD: обмежувач запитів
  • Тест Підсумковий тест курсу

Стек

Які технології використовуються?

  • JavaScript (Node.js)

Код пишете й запускаєте в браузері на платформі — встановлювати нічого не потрібно.

Доступ

Як отримати доступ?

  1. Заповніть форму

    Коротка форма на цій сторінці — без дзвінків і консультацій.

  2. Завершіть реєстрацію в Telegram

    Після форми перейдіть у Telegram-бот Prog Academy — він надішле подальші інструкції щодо доступу.

  3. Навчайтеся на платформі

    Уроки, практика й тести — на my.prog.academy, у зручному для вас темпі.

Контакт

Почніть навчання на платформі

Залиште контакти — надішлемо деталі доступу до курсу «Тестування JavaScript: unit-тести, TDD і моки». Без дзвінків і консультацій.

Інші курси за підпискою

TypeScript

TypeScript: основи

Пишіть JavaScript, у якому помилки знаходить компілятор, а не користувач

9 модулів · 25+ практичних завдань

Часті питання про курс

Що це за курс?

«Тестування JavaScript: unit-тести, TDD і моки» — онлайн-курс за підпискою на навчальній платформі Prog Academy. Пишіть тести, які ловлять справжні помилки, — і код, якому можна довіряти. Курс для тих, хто вже пише на JavaScript і хоче перестати перевіряти програму вручну після кожної зміни. Ви навчитеся писати автоматичні тести вбудованими інструментами Node.js — node:test і node:assert, — підбирати граничні випадки, працювати за TDD, підміняти залежності заглушками, шпигунами й фейковими таймерами та відрізняти тест, який справді захищає код, від тесту, який лише «зеленіє».

Для кого цей курс?

Курс для тих, хто вже пише на JavaScript і хоче перестати перевіряти програму вручну після кожної зміни.

Які знання потрібні перед стартом?

Потрібно: курс «Основи програмування на JavaScript» — функції, масиви, об'єкти, методи масивів, try/catch. Як підключати модуль через require, пояснено в першому розділі. Для розділів про асинхронний код стане в пригоді курс «Просунутий JavaScript» (Promise, async/await), але потрібний мінімум ми нагадаємо. Код виконується у вбудованому редакторі; браузерні й end-to-end тести (Cypress, Playwright) у курс не входять.

Які практичні завдання будуть?

У більшості завдань ви пишете тести до готового коду. Перевірка запускає ваші тести не лише на правильній реалізації, а й на прихованих версіях із типовими помилками: тест зараховано, якщо він проходить на правильному коді й падає на кожній версії з помилкою. Так само працює мутаційне тестування в реальних командах. В інших завданнях — навпаки: тести дано, і ви пишете код, щоб вони пройшли, як у справжньому TDD.

Які технології використовуються?

JavaScript (Node.js). Код пишете й запускаєте прямо в браузері на платформі — встановлювати нічого не потрібно.

Скільки модулів містить курс?

9 модулів: Навіщо тести і перші перевірки; node:test: структура тестів, хуки й асинхронні тести; Граничні випадки, класи еквівалентності й табличні тести; TDD: спершу тест; Тестові двійники: заглушки, шпигуни, фейки; Час і асинхронність: фейкові таймери; Тестований дизайн: залежності та фейки; Якість тестів: покриття, мутації, крихкі тести; Підсумковий проєкт. Практичних завдань з автоматичною перевіркою — 25+, тестів — 9.

Як отримати доступ?

Заповніть форму на цій сторінці й завершіть реєстрацію в Telegram-боті Prog Academy — там ви отримаєте подальші інструкції щодо доступу. Навчання проходить на платформі my.prog.academy у власному темпі.

Чи входить курс у підписку?

Так. Курс входить у підписку на платформі Prog Academy: доступ до всіх курсів за підпискою; ai-помічник з навчання в кожному курсі; усі уроки, домашні завдання та автоматична перевірка; нові курси за підпискою додаються автоматично.

Не знайшли відповідь?

Залиште запитання — підкажемо, чи підходить вам курс і з чого краще почати.