Программирование [Илья Климов] [javascript.ninja] Мастер-класс: тестирование Vue-приложений (2021)

  • Автор темы Moderator
  • Дата начала
Moderator

Moderator

Модератор
Регистрация
17.07.2019
Сообщения
69 920
Реакции
205 499
Онлайн
20дн 19ч 49м 30с
Автор: Илья Климов
Название: [javascript.ninja] Мастер-класс: тестирование Vue-приложений (2021)
скачать бесплатно [Илья Климов] [javascript.ninja] Мастер-класс: тестирование Vue-приложений (2021)


Кратко:
  • Серия видео по ключевым аспектам теории
  • 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
    • На что обратить внимание
 

Подробнее:
Скрытый контент для авторизованных пользователей.
Ссылки и информация для скачивания:

О нас

  • - Наш форум был создан с одной целью, помогать другим! На нашем форуме, Вы можете скачать самые свежие и популярные курсы, книги, тренинги и вебинары, схемы по заработку, различные мануалы и готовые кейсы, а так же слитые складчины с торрент ресурсов, по самым разным направлениям бесплатно!

    Скачать курсы торрент

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

    Слив онлайн курсов

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

    На нашем сайте вы найдёте курсы следующих тематик:
    • Курсы и лекции от известных школ обучений и авторов
    • Тренинги и вебинары по саморазвитию, психологии и эзотерике;
    • Курсы и уроки по дизайну, графике, программированию, бизнесу;
    • Инфопродукты, курсы и пособия по отношениям, пикапу, соблазнению;
    • Онлайн обучение шитью, работе по дому, строительству и рукоделию;

    Слив складчин

    К скачиванию доступны сотни складчин, со всех известных сайтов, таких как складчик или складчина. Все курсы доступны в одной подписке. Больше не нужно покупать курсы по одному!

    Онлайн курсы форум

    Обошли многие форумы и не нашли подходящий курс? Скачивайте любой из сотни тысяч курсов на нашем форуме. Инфопродукты и новые сливы курсов пополняются ежедневно!