Vue.js 开玩笑+;覆盖范围+;VueJs如何涵盖vue方法?

Vue.js 开玩笑+;覆盖范围+;VueJs如何涵盖vue方法?,vue.js,jestjs,code-coverage,vue-test-utils,ts-jest,Vue.js,Jestjs,Code Coverage,Vue Test Utils,Ts Jest,我试图覆盖代码以增加覆盖范围 报告百分比 如何涵盖vue方法中的if语句? 在我的情况下,使用@vue/test-utils:“^1.1.4”和vue:“^2.6.12”软件包版本,仅供参考,以下是我的实际组件 <template> <div :class="iconcls" > <el-image ref='cal-modal' class="icons&

我试图覆盖代码以增加覆盖范围 报告百分比

如何涵盖vue方法中的if语句?

在我的情况下,使用
@vue/test-utils:“^1.1.4”
vue:“^2.6.12”
软件包版本,仅供参考,以下是我的实际组件

<template>   
    <div :class="iconcls" >
        <el-image 
            ref='cal-modal'
            class="icons" 
            @click="handleRedirectRouter(urlname)"
            :src="require(`@/assets/designsystem/home/${iconurl}`)" 
            fit="fill" />
        <div class="desc" >{{ icondesc }}</div>
    </div>
</template>

<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator';

@Component({
  components: {}
})
class IconHolder extends Vue {
    @Prop({ default: "" }) iconcls!: any;
    @Prop({ default: "" }) iconurl!: any;
    @Prop({ default: "" }) icondesc!: any;
    @Prop({ default: "" }) urlname!: any;

    handleRedirectRouter(url: string) {
        if (url !== "") {
            this.$router.push({ name: url });
        }
    }
}

export default IconHolder;
</script>
错误报告:

expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: {"name": "about"}

Number of calls: 0

  30 |         })
  31 |         await wrapper.findComponent({ name: 'el-image' }).trigger('click');
> 32 |         expect(push).toHaveBeenCalledWith({ name: 'about' })

创建一个单元测试,该测试使用
url
的非空字符串运行该方法

  • 用螺丝钉安装组件
  • 使用,稍后我们将使用它来验证调用
  • 它绑定到该方法(作为
    单击
    处理程序)
  • 单击该组件上的
    事件
  • 使用指定的
    urlname
  • it('push route by name',()=>{
    /* 2 */
    const push=jest.fn()
    常量包装=浅装(IconHolder{
    /* 1 */
    propsData:{
    urlname:“关于”
    },
    /* 2 */
    模拟:{
    $router:{
    推
    }
    }
    })
    
    /*3嘿,兄弟,我已经更新了上面的测试套件,仍然会出现上面的错误,请帮助我解决此问题。“vue”:“^2.6.12”,“@vue/test-utils”:“^1.1.4”,你能发布一个链接到一个重现该问题的项目吗?我正在寻找一个重现你在运行单元测试时看到的错误的项目。你链接的项目只给了我应用程序代码。
    expect(jest.fn()).toHaveBeenCalledWith(...expected)
    
    Expected: {"name": "about"}
    
    Number of calls: 0
    
      30 |         })
      31 |         await wrapper.findComponent({ name: 'el-image' }).trigger('click');
    > 32 |         expect(push).toHaveBeenCalledWith({ name: 'about' })