用未知的吸毒者Jest模拟vuex

时间:2019-10-08 11:40:14

标签: javascript vue.js jestjs vuex

我对如何测试使用vuex的组件非常困惑。

我正在尝试运行的测试只是在运行时将edit设置为true的测试。方法如下:

  editMovie: function(movie){
      console.log(movie)
       this._originalMovie = Object.assign({}, movie);
       movie.edit = true;
  }, 

一些方法并在挂载时调度到商店。

我遇到有关找不到调度的错误,因此紧跟https://vue-test-utils.vuejs.org/guides/using-with-vuex.html并添加到Mock商店中(我认为...),

错误:

  

console.error node_modules / vuex / dist / vuex.common.js:899 [vuex]未知   吸气剂:电影

     

console.error node_modules / vue / dist / vue.runtime.common.dev.js:621 [Vue   警告]:渲染错误:“ TypeError:无法读取属性“ 0”的   未定义”

代码:

import { shallowMount, createLocalVue } from '@vue/test-utils'
import Vuex from 'vuex'
//import Actions from '../../src/store/Actions'
import MoviesList from '@/components/MoviesList.vue'

const localVue = createLocalVue()

localVue.use(Vuex)

describe('MoviesList.vue', () => {
  let actions
  let store

  beforeEach(() => {
    actions = {
      getMovies: jest.fn(),
    }
    store = new Vuex.Store({
      actions
    })
  })

  it('Edit should be true', () => {
    const wrapper = shallowMount(MoviesList, { store, localVue })
    wrapper.setData({ 
      movies: { 0: {
          deleted:false,
          edit:false,
          name:"Full Metal Jacket",
          released_on:"1987",
      }}
    })
    console.log(wrapper.vm.movies[0])
    wrapper.vm.editMovie(wrapper.vm.movies[0])
    expect(wrapper.vm.movies[0].edit).toBe(true)
  })
}) 

0 个答案:

没有答案