Unit testing Vuejs中单选按钮单击时方法调用的单元测试

Unit testing Vuejs中单选按钮单击时方法调用的单元测试,unit-testing,vue.js,vuejs2,Unit Testing,Vue.js,Vuejs2,我有一个名为index的组件: {{resource.title}} 从“@/Stores/getter types”导入{CHECKED}”; 从“vuex”导入{mapGetters}; 导出默认值{ 名称:“AdditionTable”, 道具:{ 资源:{required:true}, }, 数据(){ 返回{ …地图绘制者({ 选中:`addition/${checked}`, }), }; }, 方法:{ 支票(资源){ this.checked=resource.id; 这是$e

我有一个名为
index
的组件:


{{resource.title}}
从“@/Stores/getter types”导入{CHECKED}”;
从“vuex”导入{mapGetters};
导出默认值{
名称:“AdditionTable”,
道具:{
资源:{required:true},
},
数据(){
返回{
…地图绘制者({
选中:`addition/${checked}`,
}),
};
},
方法:{
支票(资源){
this.checked=resource.id;
这是$emit(“check_resource”,resource.id);
},
},
};
此组件有一个包含三列的表,其中第一列有一个
v-radio
组件。我想写一个测试来点击
收音机

这是我的尝试:

从“vue-i18n”导入VueI18n;
从“@vue/test-utils”导入{shallowMount,createLocalVue};
从“./Index”导入索引;
从“@/locales/en”导入enLang;
从“Vuex”导入Vuex;
从“vue路由器”导入VueRouter;
从“@/Modules/Additions/Store/getter”导入getter;
从“@/Modules/Additions/Store/translations”导入突变;
从“@/Modules/Additions/Store/state”导入状态;
从“vue微调器/src/ScaleLoader”导入ScaleLoader;
从“@/Modules/Additions/Components/Table”导入AdditionTable;
从“Vuetify”导入Vuetify;
从“vuetify/lib/components/VRadioGroup/VRadioGroup”导入VRadioGroup;
从“vuetify/lib/components/VRadioGroup/VRadio”导入VRadio;
const localVue=createLocalVue();
localVue.use(VueI18n);
localVue.use(Vuex);
localVue.use(VueRouter);
让包装纸;
描述(“Index.vue”,()=>{
让配置;
让商店;
让路由器;
让虚张声势;
让行动;
在每个之前(()=>{
vuetify=新的vuetify();
路由器=新的VueRouter({
路线:[
{
名称:“添加”,
路径:“/添加”,
组成部分:索引,
},
],
});
行动={
fetchResources:jest.fn(),
checkResource:jest.fn(()=>{
state.checked=0;
}),
};
store=新的Vuex.store({
模块:{
补充:{
名称空间:对,
国家,,
获得者,
突变,
行动,
},
},
});
配置={
localVue,
vuetify,
商店,
路由器,
模拟:{
检查资源:jest.fn(),
},
i18n:新的VueI18n({
地点:“恩”,
后备语言环境:“en”,
信息:{
恩:恩朗,,
},
}),
存根:{
ScaleLoader,
附加表,
VRadioGroup,
弗拉迪奥,
},
};
});
它(“单击收音机确实有效”,async()=>{
state.resources.data=[
{
id:1,
标题:“测试”,
},
{
id:2,
标题:“测试2”,
},
];
包装器=shallowMount(索引,配置);
const button=wrapper.findAll(“.v-radio输入”);
等待按钮。在(1)处。触发(“点击”);
expect(actions.checkResource).tohaveBeenCall();
});
});
结果:

Expected number of calls: >= 1
Received number of calls:    0

  136 |         await button.at(1).trigger("click");
  137 | 
> 138 |         expect(actions.checkResource).toHaveBeenCalled();
      |                                       ^
  139 | 
  140 |     });
  141 | });
我不知道我的错误在哪里


有人能帮我吗?

我看不到操作
checkResource
所以可能没有调用它。有
check_resource
addition/${check_resource}
@TomaszKostuch,它在
description
中的
before
方法中定义,是的,但我问的是真实函数而不是模拟函数。在vuex中,操作在哪里被称为
checkResource
?@TomaszKostuch进入
/Store/actions.js
。是否要使用此文件内容更新问题?