Nuxt великолепен, но модульное тестирование - это проблема.
После попытки использовать Mocha + Karma я обнаружил, что нужна сложная конфигурация веб-пакета. Я искал альтернативу и нашел отличный пример Vue + AVA Эдда Йербурга.
Я решил использовать этот пример для тестирования Nuxt. AVA великолепна, Nuxt docs используют AVA для тестирования E2E. В этой статье я объясню, как настроить модульные тесты и тесты моментальных снимков с небольшой конфигурацией.
Я использовал рекомендованный стартовый шаблон сообщества Nuxt и добавил тесты.
Настраивать
Добавьте следующие пакеты:
yarn add ava @vue/test-utils browser-env require-extension-hooks require-extension-hooks-babel require-extension-hooks-vue --dev
добавьте следующий файл
Этот файл представляет собой тестовую установку, которая гарантирует, что browser-env правильно скомпилирует компоненты Vue.
Расширить пакет со следующей конфигурацией AVA и Babel
Ava использует babel-register и тестовую установку для настройки тестов. Все тестовые файлы, расположенные в test / specs, будут протестированы. Расположение настраиваемого снимка - test / snapshots.
Составная часть
Простой компонент для тестирования:
Проверьте компонент списка:
Первый тест - это тест-снимок, который хранится в test / snapshots. Второй тест - это модульные тесты, которые проверяют, правильно ли отображается элемент в li.
Имея небольшую конфигурацию и только 1 средство запуска тестов (AVA), мы можем создавать тесты Unit, Snapshot и E2E.
Для полного примера ознакомьтесь с этим репозиторием github: https://github.com/wesssel/nuxt-unit-testing