Click to order
Оплата участия
Total: 
Имя
E-mail
Промокод
Мастер-класс:
тестирование Vue-приложений
Как показал мой опыт работы в GitLab - тестирование Vue-компонентов не самая сильная сторона даже тех, кто съел собаку на тестировании к примеру backend-кода. Здесь “аукается” то, что во Vue очень много сложных возможностей, которые нетривиально тестировать. Добавьте к этому некие удивительные особенности @vue/test-utils (у автора порядка 10 принятых pull-requests в репозиторий) - и получите прекрасный коктейль сложного тестирования
Зачем мне это?

Теоретическая часть

Видео представляют собой небольшие (~15-30 минут) фрагменты теоретических изысканий, объясняющих всё “на пальцах” (а точнее пером по экрану)
Что именно тестируется во Vue-компонентах?
-
Вывод компонента в зависимости от props
-
Когда мы передаем такие-то параметры, мы ожидаем что кнопка видна
-
Когда мы передаем такие-то параметры, мы ожидаем, что видна аватарка пользователя с такими-то параметрами
-
Генерирование побочных эффектов
Когда пользователь нажимает на вот этот элемент, мы ожидаем что компонент генерирует событие "Submit" с такими-то параметрами
Когда компонент появляется в DOM-дереве, мы ожидаем что компонент вызывает функцию getUser у такого-то объекта
Что предлагает нам @vue/test-utils для тестирования?
Жизненный цикл компонента сквозь призму тестирования
Холивар: mount vs shallowMount
-
Как выбрать?
-
Стоит ли всегда выбирать одно?
-
Последствия выбора?
Бонус: А что поменяется во Vue3?
Бонус: Компонентные тесты и Vue: как и когда?
Практическая часть
Семинар представляет собой написание и критику конкретных тестов на Jest реального кода с пояснением что и для чего применяется. Другими словами: соотношение “документации” к практике ее применения составляет около 30 к 70% по оценке автора
Антипаттерны тестирования Vue-компонентов
  • Тестирование computed-свойств
  • Использование setData
  • Использование setProps
  • Использование setMethods
Тестирование снапшотами
  • Какие задачи решают снапшоты
  • Когда стоит использовать снапшоты и как
  • Слабые места снапшотов
Структура классического Vue-теста
Фикстуры
  • Какую задачу решают фикстуры?
  • Почему важно использовать фикстуры, а не писать самому параметры?
  • Аккуратно: мутация фикстур!
  • Признаки "здесь надо использовать фикстуры"
Тестирование компонентов со слотами
  • В чём сложность?
  • Создание простейшего стаба для рендера слота
  • Стабы с динамическими слотами
  • Scoped slots с логикой
  • Когда можно вместо стаба передать настоящий компонент и чем это грозит?
Тестирование компонентов с Vuex
  • Создание и передача мока сторы
  • Как портят жизнь `mapActions, map...`
  • Корректно мокаем actions/mutations
  • Тестирование самой сторы
Тестирование компонентов с Apollo GraphQL
  • Что для компонента означает использование в нем Apollo?
  • apollo-link-mock
  • На что обратить внимание
Вопросы и ответы
❓Почему это “мастер-класс”, а не курс
В моей картине мира курс должен обладать рядом признаков:
  1. контролем качества на входе (иначе как понять, что мы способны научить человека?)
  2. домашними заданиями
  3. контролем качества на выходе
Ничего из этого в этом материале нет. Я не представляю, какое тестовое задание можно придумать на курс по тестированию, я осознанно не хочу делать домашние задания, потому что тестирование (и я хочу чтобы это усвоил каждый) чётко привязано и регулируется задачами бизнеса - в разных условиях и требованиях один и тот же код будет протестирован по-разному. Моя задача: сподвигнуть вас на максимально скорое внедрение тестирования в существующий проект, пусть даже в рамках личной инициативы. Я готов отвечать достаточно долго и развернуто на вопросы любой сложности по тестированию и особенно - по его философии
❓ Какой уровень владения Vue и тестами нужен, чтобы мастер-класс был полезен?
На мастер-классе не будет пояснения базовых концепций тестирования. Возможно наш мастер класс по тестированию JavaScript поможет их освоить. Также ожидается, что Вы знакомы с терминологией Vue и принципами использования основных его возможностей
❓Условия возврата денег
Гарантированный возврат в течение 30 дней с момента оплаты без лишних вопросов