Mat*_*Dev 5 javascript unit-testing vue.js jestjs vue-test-utils
我正在使用 VueJS 和 Jest 对我的组件进行单元测试。
我还使用 Bootstrap Vue 库进行样式设置。我需要在 Jest 测试中使用此插件,以删除一些有关未知插件的控制台警告。
我已经创建了一个安装文件,如下所示:
import { createLocalVue } from '@vue/test-utils'
import BootstrapVue from 'bootstrap-vue'
const localVue = createLocalVue()
localVue.use(BootstrapVue)
Run Code Online (Sandbox Code Playgroud)
并将 Jest 配置为在每次测试之前使用它。
setupFiles: ['<rootDir>/tests/unit/setup']
Run Code Online (Sandbox Code Playgroud)
但是,要从控制台中删除警告,我需要localVue
在安装组件时使用该实例:
const wrapper = shallowMount(MyComponent, {
localVue,
propsData: { value: 'someVal }
})
Run Code Online (Sandbox Code Playgroud)
但是,我无法看到将localVue
创建的实例放入setup.js
测试规范文件中。
如果我这样做:
import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue)
Run Code Online (Sandbox Code Playgroud)
它工作正常,但这很糟糕,因为我们不应该在 Jest 测试中使用 Global Vue 实例。
有没有办法做我想做的事情,或者我是否必须在每个测试文件中构建 Bootstrap Vue 插件(以及其他插件......)?
您可以尝试将该localVue
变量分配为setupFiles
. 这将允许您localVue
在每个测试中访问变量,如下所示:
import { createLocalVue } from '@vue/test-utils'
import BootstrapVue from 'bootstrap-vue'
global.localVue = createLocalVue()
global.localVue.use(BootstrapVue)
Run Code Online (Sandbox Code Playgroud)
然后在测试中像这样使用它:
const localVue = global.localVue
const wrapper = shallowMount(MyComponent, {
localVue,
propsData: { value: 'someVal' }
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2170 次 |
最近记录: |