我正在使用VueJS和Jest对组件进行单元测试。
我还在使用Bootstrap Vue库进行样式设置。我需要在Jest测试中使用此插件,以便删除一些有关未知插件的控制台警告。
我已经这样创建了一个安装文件:
import { createLocalVue } from '@vue/test-utils'
import BootstrapVue from 'bootstrap-vue'
const localVue = createLocalVue()
localVue.use(BootstrapVue)
并配置Jest在每次测试之前使用它。
setupFiles: ['<rootDir>/tests/unit/setup']
但是,要从控制台中删除警告,我需要在安装组件时使用localVue
实例:
const wrapper = shallowMount(MyComponent, {
localVue,
propsData: { value: 'someVal }
})
但是,我无法看到将在localVue
中创建的setup.js
实例放入测试规范文件中。
如果我这样做:
import Vue from 'vue'
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue)
它工作正常,但这很糟糕,因为我们不应该在Jest测试中使用Global Vue实例。
是否有一种方法可以做我想做的事,还是我必须在每个测试文件中构造Bootstrap Vue插件(以及随之而来的其他插件...)?
答案 0 :(得分:3)
您可以尝试将$product->set_regular_price( $newRegularPrice );
$product->set_price( $newRegularPrice );
变量分配为localVue
中的全局变量。这样,您可以在每次测试中访问setupFiles
变量,如下所示:
localVue
然后在测试中像这样使用它:
import { createLocalVue } from '@vue/test-utils'
import BootstrapVue from 'bootstrap-vue'
global.localVue = createLocalVue()
global.localVue.use(BootstrapVue)