Javascript 尝试从vuex测试使用mapState的vue组件
当前尝试测试正在使用vuex…mapState方法的vue组件,但仅通过将其引入该组件而失败 这是我得到的当前错误:Javascript 尝试从vuex测试使用mapState的vue组件,javascript,vue.js,jestjs,sinon,Javascript,Vue.js,Jestjs,Sinon,当前尝试测试正在使用vuex…mapState方法的vue组件,但仅通过将其引入该组件而失败 这是我得到的当前错误: ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import _Object$defineProperty from "../../core-js/object/define-property"; 这是我的测试 SimpleCompone
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import _Object$defineProperty from "../../core-js/object/define-property";
这是我的测试
SimpleComponentTest.spec.js
import { shallowMount, createLocalVue } from '@vue/test-utils';
import SimpleStore from '../../src/components/SimpleComponent.vue';
import Vuex from 'vuex';
const sinon = require('sinon');
const localVue = createLocalVue();
localVue.use(Vuex);
describe('SimpleComponent.vue', () => {
it('Is Vue Instance', () => {
const wp = shallowMount(SimpleComponent, { computed: { users: () => 'someValue' }, localVue });
expect(wp.isVueInstance()).toBe(true);
});
});
我在使用Sinon的Jest进行测试。在我的测试中,我对如何正确设置商店有点困惑,但这是我在网上查找时发现的一种方法
代码库比我向您展示的要大一些,但这是因为在运行了几个小时的错误之后,我发现我需要使用…mapState方法测试最简单的代码,并从那里重新构建它
任何帮助都将不胜感激:)
目标:通过一个简单的测试,测试使用vuex中的…mapState([])的组件Replace
import-mapState from'vuex'代码>通过从“vuex”导入{mapState}代码>。mapState是Vuex默认导出的属性,因此您需要对其进行分解。@seblor刚刚用该更改更新了代码。测试仍然失败,但很高兴知道我做错了代码>通过从“vuex”导入{mapState}代码>。mapState是Vuex默认导出的属性,因此您需要对其进行分解。@seblor刚刚用该更改更新了代码。测试仍然失败,但知道我做错了,这很好。
store.js
import Vue from "vue";
import Vuex from "vuex";
const fb = require("./firebaseConfig.js");
Vue.use(Vuex);
fb.auth.onAuthStateChanged(user => {
if (user) {
store.commit('setCurrentUser', user)
// realtime updates from our posts collection
fb.usersCollection.onSnapshot(querySnapshot => {
let userArray = []
querySnapshot.forEach(doc => {
let user = doc.data()
user.id = doc.id
userArray.push(user)
})
store.commit('setUsers', userArray)
})
}
})
export const store = new Vuex.Store({
state: {
users:[],
},
actions: {
clearData({ commit }) {
commit('setUsers', null);
},
},
mutations: {
setUsers(state, val){
state.users = val
},
},
});
SimpleComponentTest.spec.js
import { shallowMount, createLocalVue } from '@vue/test-utils';
import SimpleStore from '../../src/components/SimpleComponent.vue';
import Vuex from 'vuex';
const sinon = require('sinon');
const localVue = createLocalVue();
localVue.use(Vuex);
describe('SimpleComponent.vue', () => {
it('Is Vue Instance', () => {
const wp = shallowMount(SimpleComponent, { computed: { users: () => 'someValue' }, localVue });
expect(wp.isVueInstance()).toBe(true);
});
});