JS: Продвинутое тестирование

Теория: Введение

Тесты — большая тема со множеством нюансов. Одно дело тестировать чистые функции, другое — приложение, в котором есть взаимодействие с базой данных, отправка запросов по сети, электронных писем, где используются таймеры и асинхронность. Даже тестирование ошибок обладает своими особенностями.

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

Этот курс рассказывает о том, как тестировать сложные ситуации, в которых есть побочные эффекты, асинхронный код, в том числе завязанный на таймеры. Основные темы:

  • Тестирование ошибок. Снепшот-тесты.
  • Фикстуры. Организация тестовых данных.
  • Изоляция побочных эффектов. Стабы. Инверсия зависимости.
  • Моки. Тестирование методом черного ящика.
  • Таймеры. Управление временем.
  • Тестирование асинхронного кода.

Рекомендуемые программы