Как избежать импорта всего, что нужно компоненту в каждом тестовом файле? - PullRequest
5 голосов
/ 01 ноября 2019

В моих шутливых тестах мне нужно импортировать все, что нужно для работы тестируемого компонента (что я делаю в моем приложении 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', () => {});
});

Я ожидаю импортировать все, что мне нужно, в файл, например helper.js

Затем в моем тестовом файле я просто сделаю что-то вроде

import 'test-helpers/helper';

describe('input-something', () => {...})

Ответы [ 2 ]

2 голосов
/ 01 ноября 2019
  1. создать отдельный файл js
  2. импортировать компоненты или плагины или все, что вам нужно
  3. импортировать этот файл в файл main.js

Дляпример: это мой отдельный reseableComponets.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'
...

Теперь в app.js

import('path to reseableComponets.js')

Вот и все.

0 голосов
/ 03 ноября 2019

Используйте setupFilesAfterEnv в вашем jest.config.js, чтобы указать на скрипт, который настраивает ваши тесты. Этот файл будет автоматически вызываться перед вашими тестами, поэтому вам не нужно будет его импортировать.

Например, вы можете переместить упомянутый код установки в файл с именем my-setup.js, а затем настроить Jestследующим образом:

// jest.config.js
module.exports = {
  setupFilesAfterEnv: ['./my-setup.js'],
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...