javascript - 使用 Jest 测试 Nuxt + Vuex + Vuetify 的设置

标签 javascript vue.js jestjs vuetify.js nuxt.js

我花了一天时间解决有关 Nuxt + Vuex + Vuetify with Jest 测试设置的未记录问题。

我遇到了以下问题:

  • Unknown custom element: <nuxt-link> - When running jest unit tests

  • Cannot read property 'register' of undefined

  • [Vuetify] Multiple instances of Vue detected

最佳答案

在收集了多个来源后,我最终完成了以下设置,我将在此处记录它以供任何人省去一天的头痛。

工作设置:

// ./jest.config.js

module.exports = {
    // ... other stuff
     setupFilesAfterEnv: ['./test/jest.setup.js']
}
// ./test/jest.setup.js

import Vue from 'vue'
import Vuetify from 'vuetify'
import VueTestUtils from '@vue/test-utils'

Vue.use(Vuetify)

// Mock Nuxt components
VueTestUtils.config.stubs['nuxt'] = '<div />'
VueTestUtils.config.stubs['nuxt-link'] = '<a><slot /></a>'
VueTestUtils.config.stubs['no-ssr'] = '<span><slot /></span>'
// ./test/Header.test.js

import { mount, createLocalVue } from '@vue/test-utils'
import Vuetify from 'vuetify'
import Vuex from 'vuex'

import Header from '~/components/layout/Header'

const localVue = createLocalVue()
localVue.use(Vuex)

let wrapper

beforeEach(() => {
    let vuetify = new Vuetify()

    wrapper = mount(Header, {
        store: new Vuex.Store({
            state: { products: [] }
        }),
        localVue,
        vuetify
    })
})

afterEach(() => {
    wrapper.destroy()
})

describe('Header', () => {
    test('is fully functional', () => {
        expect(wrapper.element).toMatchSnapshot()
    })
})

关于javascript - 使用 Jest 测试 Nuxt + Vuex + Vuetify 的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59810929/

相关文章:

javascript - 使用带有后续操作的 send_data 下载 Rails 文件

javascript - 在 Firefox 中,第一个输入/文本区域的动态焦点不起作用

laravel - Laravel Vue.js 应用程序的 SEO

javascript - Angular 7 & Jest & Babel Integration over Jasmine/Karma - 找不到 snapshotSerializers 选项中的 AngularSnapshotSerializer.js

javascript - Highcharts 树状图 : forcing layout on 3 lines

vue.js - 清除 nuxt.js 构建上的间隔和超时

vue.js - 我如何在 vue 和 vuetify 中插入本地项目中的字体?

javascript - 在事务中包装 sequelize ORM 测试

javascript - 如何用 Jest 模拟第三方模块

javascript - 我们可以检测页面是否在 Twitter 和 LinkedIn 上共享吗