Vue + Jest全局配置转入规格文件

时间:2019-09-20 08:21:09

标签: 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)

并配置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插件(以及随之而来的其他插件...)?

1 个答案:

答案 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)