Vue-test-utils 包装器未定义

Ada*_*ler 8 javascript unit-testing vue.js vuejs2 vue-test-utils

我在 Jest 中有以下组件的测试套件。我已经成功地为其他几个遵循类似结构的组件编写了单元测试:

import { createLocalVue, mount } from '@vue/test-utils'
import Vuex from 'vuex'
import storeMock from '@mocks/store'
import RequestProposalsContainer from '@/components/RequestProposals/RequestProposalsContainer'

describe('ProviderComparison component', () => {
  let localVue, store, wrapper, storeSetup

  beforeEach(() => {
     localVue = createLocalVue()
     localVue.use(Vuex)

     storeSetup = storeMock()
     store = new Vuex.Store(storeSetup)
     /* wrapper is undefined and I'm not sure why */
     wrapper = mount(RequestProposalsContainer, {
       localVue,
       store
     })
  })

  it('renders correct structure', () => {
     /* undefined */
     console.log('wrapper: ', wrapper)
  })
})
Run Code Online (Sandbox Code Playgroud)

通过检查,正在安装的组件、store 和 localVue 实例都定义良好。

Riz*_*han 3

我也遇到过类似的情况,其中wrapper返回的结果是未定义的。

在测试时,您必须为组件提供渲染所需的一切。

(正如 @Adam Freymiller 已经提到的)所有必需的值(道具、存储值等)都没有在测试中设置,因此组件会出错,就像在现实生活场景中一样。