我试图在npm脚本中使用mocha-webpack来测试vuejs组件。我在测试中嘲笑这样的vuex商店:
const vm = new Vue({
template: '<div><test></test></div>',
store: new Vuex.Store(mockedStore),
components: {
'test': TestItems
}
}).$mount()
我在组件上调用一个方法进行测试,例如:
vm.$options.components.test.methods.foo()
在组件中,我有访问商店的代码,例如:
this.$store.commit('bar', data)
问题是当它到达这一点时我得到了这个错误:
'Cannot read property \'commit\' of undefined' undefined undefined
我验证了这个&#39;在这种情况下是未定义的。当我运行应用时,&#39;这个&#39;已定义且已存储&#39;。如何在单元测试环境中使其工作?
答案 0 :(得分:1)
您正在调用foo
组件的test
方法而没有test
的实例。尝试做这样的事情:
const vm = new Vue({
template: '<div><test ref="test"></test></div>',
store: new Vuex.Store(mockedStore),
components: {
'test': TestItems
}
}).$mount()
vm.$refs.test.foo()
foo
将vm.$refs.test
作为this
进行调用。