Описание
Тестирование для меня – самый простой способ изменить мышление в сторону более чистой и управляемой архитектуры. “Это легко тестировать” чаще всего является синонимом “это достаточно хорошо спроектировано”. Даже если вы не практикуете тестирование на реальном проекте, понимание как это можно протестировать (а вернее почему нельзя) однозначно приведет вас к изменению стиля вашего кода
Теоретическая часть (записанные видео)
Видео представляют собой небольшие (~15-20 минут) фрагменты теоретических изысканий, практически не привязанных к конкретному языку программирования (за исключением 4 части) и объясняющих всё “на пальцах” (а точнее пером по экрану)
-
- Часть 1: Философия тестов
- Цели и задачи тестирования
- Уровни “пирамиды тестирования”
- Статическая типизация
- Unit-тестирование
- Интеграционное тестирование
- End-to-End тестирование
- Задачи тестирования
- Почему не стоит гнаться за покрытием кода
- Бизнес-требования и тесты
- Часть 2: Детройт против Лондона: вечный холивар
- Два подхода к организации системы тестирования
- Преимушества и недостатки обоих подходов
- Ключевые слова мира тестирования:
- Dummy, Fake, Stubs, Spies, Mocks
- Фикстуры и проблемы с ними
- TDD vs BDD vs ничего 🙂
- Два подхода к организации системы тестирования
- Часть 3: Принципы unit-тестирования
- Что значит “честность” и “хрупкость” теста. Почему они важны?
- “Юнит” в тестировании
- Структура правильного теста: Arrange, Act, Assert
- Часть 4: Тесты и реальный мир
- Сложности реальности: пользователь, latency, время и прочее
- Что нужно от системы тестирования
- Runner
- Assertion framework
- Utility
- Страшный зверь JSDOMЭТО НЕЛЬЗЯ ПРОТЕСТИРОВАТЬ!
- Часть 1: Философия тестов
Практическая часть (семинар)
Семинар представляет собой написание конкретных тестов на Jest реального кода с пояснением что и для чего применяется. Другими словами: соотношение “документации” к практике ее применения составляет около 30 к 70% по оценке автора
- Синтаксис Jest-тестов
- скучные describe/it
- each-магия
- самые важные expect
- Делаем моки и стабы 🙂
- jest.fn
- Превращаем мок в стаб
- Логика внутри стабов
- Шпионим за сущностями
- jest.spyOn
- Don’t test the library?
- Моки модулей
- Как работает jest.mock под капотом и почему это важно
- javascript-модули и неочевидные нюансы
- Моки классов: что же может пойти не так?
- Асинхронные тесты и event-loop
- “Большие” таймеры и механизм управления ими в Jest
- Асинхронные тесты
- Немного “Ops”:
- Переходим в параноидальный режим
- Code-coverage
- Интеграция с CI
Вопросы и ответы
Почему это “мастер-класс”, а не курс
В моей картине мира курс должен обладать рядом признаков:
- контролем качества на входе (иначе как понять, что мы способны научить человека?)
- домашними заданиями
- контролем качества на выходе
Ничего из этого в этом материале нет. Я не представляю, какое тестовое задание можно придумать на курс по тестированию, я осознанно не хочу делать домашние задания, потому что тестирование (и я хочу чтобы это усвоил каждый) чётко привязано и регулируется задачами бизнеса – в разных условиях и требованиях один и тот же код будет протестирован по-разному. Моя задача: сподвигнуть вас на максимально скорое внедрение тестирования в существующий проект, пусть даже в рамках личной инициативы. Я готов отвечать достаточно долго и развернуто на вопросы любой сложности по тестированию и особенно – по его философии
Я не смогу присутствовать лично на семинаре, что я потеряю?
Вы потеряете возможность задать вопросы в реал-тайм и получить ответ сразу же на стриме. Мы всё так же будем крайне рады вас видеть в нашем канале и с удовольствием ответим на ваши вопросы
Какой уровень владения JavaScript нужен, чтобы мастер-класс был полезен?
Сложно ответить. Я искренне считаю, что материал будет полезен всем, но для того чтобы извлечь максимум пользы вы должны понимать основные примитивы и принципы работы JS: асинхронность, DOM, Promise, AJAX, fetch и так далее
Олег –
Курс не соответствует описанию
admin4ik –
Здравствуйте! Что не так? Только что проверили, всё соответствует