如何避免在每个测试文件中导入组件所需的所有内容?

Cas*_*ppe 5 javascript vue.js jestjs vuejs2

在我的玩笑测试中,我需要导入被测试组件需要工作的所有内容(这在我的应用程序中进行main.js)。由于我有多个测试文件,因此需要在每个文件中“重新导入”它。有没有一种方法可以将所有文件导入单个文件,然后仅导入该文件?

import Component from '@/views/input-something'
import {mount, shallowMount} from '@vue/test-utils'
import {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'
import {library} from '@fortawesome/fontawesome-svg-core'
import {fas} from '@fortawesome/free-solid-svg-icons'
import 'bootstrap-vue/dist/bootstrap-vue.css'
import 'bootstrap/dist/css/bootstrap.css'
import BootstrapVue from 'bootstrap-vue'
import 'vue-select/dist/vue-select.css'
import Vuelidate from 'vuelidate'
import Vue from 'vue'
import './helpers/multi-ref-test-runner'

Vue.component('font-awesome-icon', FontAwesomeIcon)
Vue.use(BootstrapVue)
Vue.use(Vuelidate)
library.add(fas)

// I wish to write everything above in a single file

window.confirm = function() { return false; }

describe('input-something', () => {
  let wrapper;
  beforeEach(() => {
    wrapper = mount(Component, {...});
  });

  it('it renders', () => {});
});
Run Code Online (Sandbox Code Playgroud)

我希望将所需的所有内容导入文件,例如 helper.js

然后在我的测试文件中,我会做类似

import 'test-helpers/helper';

describe('input-something', () => {...})
Run Code Online (Sandbox Code Playgroud)

Afr*_*mad 4

  1. 创建一个单独的js文件
  2. 导入组件或插件或任何你想要的东西
  3. 将该文件导入到 main.js 文件中

例如:这是我单独的reuseableComponets.js

// I include components and plugins here
...
import Component from '@/views/input-something'
import {mount, shallowMount} from '@vue/test-utils'
import {FontAwesomeIcon} from '@fortawesome/vue-fontawesome'
...
Run Code Online (Sandbox Code Playgroud)

现在在 app.js 中

import('path to reuseableComponets.js')
Run Code Online (Sandbox Code Playgroud)

就是这样。