Тестирование модуля
Юнит-, интеграционные и E2E-тесты модуля Nuxt.
Тесты помогают убедиться, что модуль ведёт себя предсказуемо в разных сценариях.
Юнит-тесты
E2E-тесты
Nuxt Test Utils — основной способ E2E. Схема:
- Nuxt-приложение-фикстура в
test/fixtures/* - В тесте поднять Nuxt с этой фикстурой
- Обращаться к приложению через
@nuxt/test-utils(например$fetch) - Проверять результат (HTML, статус и т.д.)
- Повторить для других фикстур
Фикстура:
test/fixtures/ssr/nuxt.config.ts
// 1. Nuxt-приложение в роли «фикстуры»
import MyModule from '../../../src/module'
export default defineNuxtConfig({
ssr: true,
modules: [
MyModule,
],
})
Тест:
test/rendering.ts
import { describe, expect, it } from 'vitest'
import { fileURLToPath } from 'node:url'
import { $fetch, setup } from '@nuxt/test-utils/e2e'
describe('ssr', async () => {
// 2. Поднять Nuxt с этой фикстурой в файле теста
await setup({
rootDir: fileURLToPath(new URL('./fixtures/ssr', import.meta.url)),
})
it('отрисовывает главную страницу', async () => {
// 3. Работа с фикстурой через утилиты `@nuxt/test-utils`
const html = await $fetch('/')
// 4. Проверки для этой фикстуры
expect(html).toContain('<div>ssr</div>')
})
})
// 5. Повторить для других сценариев
describe('csr', async () => { /* ... */ })
Пример — в стартере модуля.
Ручная проверка
Playground в стартере удобен при разработке (см. раздел «Разработка»).
Вне репозитория модуля можно проверить локально: соберите tarball npm pack (или аналог) и в тестовом проекте укажите в package.json: "my-module": "file:/path/to/tarball.tgz", затем подключите модуль как обычно.