Typescript 问:Vuex模块装饰器:如何使用jest测试Vuex操作?

Typescript 问:Vuex模块装饰器:如何使用jest测试Vuex操作?,typescript,vue.js,vuex,vuex-module-decorators,Typescript,Vue.js,Vuex,Vuex Module Decorators,我想使用Jest测试Vuex操作。我使用类样式编写Vuex存储。 我的店铺如下 从“vuex模块装饰器”导入{Action,Module,Mutation,VuexModule}; @模块({name:“counter”,命名空间:true}) 导出类计数器扩展VuexModule{ 私有计数:数字=0; @突变 公共增量():void{ 这个.count++; } 获取getCount(){ 返回这个.count; } @动作({}) public add2():void{ 这个。增量();

我想使用Jest测试Vuex操作。我使用类样式编写Vuex存储。 我的店铺如下

从“vuex模块装饰器”导入{Action,Module,Mutation,VuexModule};
@模块({name:“counter”,命名空间:true})
导出类计数器扩展VuexModule{
私有计数:数字=0;
@突变
公共增量():void{
这个.count++;
}
获取getCount(){
返回这个.count;
}
@动作({})
public add2():void{
这个。增量();
这个。增量();
}
}
我的测试代码如下。“突变测试”和“getter测试”工作。 但我不知道如何测试行动。我无法正确执行操作“add2”。 有人知道如何测试动作吗

从“Vuex”导入Vuex;
从“@/store/modules/Counter”导入{Counter};
从“@vue/test-utils”导入{createLocalVue};
const localVue=createLocalVue();
localVue.use(Vuex);
描述(“计数器测试”,()=>{
它(“突变试验”,()=>{
常数mockState={
计数:0
};
Counter.increment(mockState,{});
expect(mockState.count).toBe(1);
});
它(“getter测试”,()=>{
常数mockState={
计数:3
};
expect(Counter.getters!.getCount(mockState,null,null)).toBe(3);
});
它(“动作测试”,()=>{
常数mockState={
计数:3
};
//IntelliJ显示错误消息
//“无法调用其类型缺少调用签名的表达式。类型“Action”没有兼容的调用签名。”
Counter.actions!.add2();
expect(mockState.count).toBe(4);
});
});

尝试安装存储并测试它,而不是直接测试模块,如下所示:

const store=新的Vuex.store({
模块:{
柜台:柜台
}
})
它('should foo',()=>{
门店发货('柜台/地址2')
expect(store.state.counter.count).toBe(4);
})
避免在测试之间共享状态也很有用,可以使用
stateFactory
标志,如下所示:

@Module({stateFactory:true,namespaced:true})

尝试安装存储并测试它,而不是直接测试模块,如下所示:

const store=新的Vuex.store({
模块:{
柜台:柜台
}
})
它('should foo',()=>{
门店发货('柜台/地址2')
expect(store.state.counter.count).toBe(4);
})
避免在测试之间共享状态也很有用,可以使用
stateFactory
标志,如下所示:

@Module({stateFactory:true,namespaced:true})