Сбор взносов

[javascript.ninja] Тестирование Vue-приложений (Илья Климов)

Тема в разделе "Курсы по программированию", создана пользователем Lodbrok, 30 дек 2021.

Тема найдена по тегам:
Цена:
5700р.
Взнос:
443р.

Список участников складчины:

1. Lodbrok
Тип: Стандартная складчина
  1. 30 дек 2021
    #1
    Lodbrok
    Lodbrok Организатор
    [javascript.ninja] Тестирование Vue-приложений (Илья Климов)
    [​IMG]

    Кратко:
    Серия видео по ключевым аспектам теории
    2 real-time семинара (суммарно около 4-5 часов) с разборами реальных примеров тестирования Vue-компонентов с использованием Jest (запись будет снабжена таймкодами для удобной навигации)
    репозиторий с примерами с семинаров
    Закрытый чат по тестированию (хочу знать каждую вашу боль!)
    Доступ к видео: 1 февраля 10:00 по Украине, семинары: 6 и 13 февраля 11:00 (пара часов + общение)

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

    Теоретическая часть (записанные видео)
    Видео представляют собой небольшие (~15-30 минут) фрагменты теоретических изысканий, объясняющих всё “на пальцах” (а точнее пером по экрану)
    • Что именно тестируется во Vue-компонентах?
      • Вывод компонента в зависимости от props
      • Когда мы передаем такие-то параметры, мы ожидаем что кнопка видна
      • Когда мы передаем такие-то параметры, мы ожидаем, что видна аватарка пользователя с такими-то параметрами
      • Генерирование побочных эффектов
        • Когда пользователь нажимает на вот этот элемент, мы ожидаем что компонент генерирует событие "Submit" с такими-то параметрами
        • Когда компонент появляется в DOM-дереве, мы ожидаем что компонент вызывает функцию getUser у такого-то объекта
      • Реакция компонента на внешние воздействия
        • Когда мы вводим данные в это поле, мы ожидаем что вот эта кнопка будет включена
        • Когда компонент dropdown генерирует событие change, мы ожидаем что вот это поле будет обновлено
        • Когда вызванная функция возвращает такие-то значения, мы ожидаем что в списке будет ровно три элемента
    • Что предлагает нам @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
      • На что обратить внимание
    Вопросы и ответы
    ❓ Почему это “мастер-класс”, а не курс

    ✅ В моей картине мира курс должен обладать рядом признаков:
    • контролем качества на входе (иначе как понять, что мы способны научить человека?)
    • домашними заданиями
    • контролем качества на выходе
    Ничего из этого в этом материале нет. Я не представляю, какое тестовое задание можно придумать на курс по тестированию, я осознанно не хочу делать домашние задания, потому что тестирование (и я хочу чтобы это усвоил каждый) чётко привязано и регулируется задачами бизнеса - в разных условиях и требованиях один и тот же код будет протестирован по-разному. Моя задача: сподвигнуть вас на максимально скорое внедрение тестирования в существующий проект, пусть даже в рамках личной инициативы. Я готов отвечать достаточно долго и развернуто на вопросы любой сложности по тестированию и особенно - по его философии

    ❓ Я не смогу присутствовать лично на семинаре, что я потеряю?
    ✅ Вы потеряете возможность задать вопросы в реал-тайм и получить ответ сразу же на стриме. Мы всё так же будем крайне рады вас видеть в нашем канале и с удовольствием ответим на ваши вопросы

    ❓ Какой уровень владения Vue и тестами нужен, чтобы мастер-класс был полезен?
    ✅ На мастер-классе не будет пояснения базовых концепций тестирования. Возможно наш мастер класс по тестированию JavaScript поможет их освоить. Также ожидается, что Вы знакомы с терминологией Vue и принципами использования основных его возможностей

    ❓ Условия возврата денег
    ✅ Гарантированный возврат в течение 30 дней с момента оплаты без лишних вопросов

     
    30 дек 2021