我对如何测试使用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)
})
})