javascript - Vue.js 单元测试 - 如何检查组件是否有方法?

标签 javascript unit-testing vuejs2

我有一个简单的组件,其中有一个方法。我想检查其中是否存在方法。我知道我可以检查组件是否包含某个类或字符串,但无法弄清楚如何检查方法的名称。找不到任何简单的解释。

要测试的组件:

<template>
    <div>
      <a id="returnButton" href="#" @click="toMainList" class="d-flex align-items-center back-to-button">
          <font-awesome-icon :icon="['fas', 'arrow-left']" class="fontBasicIcon back-to-button-icon" />
          <div>Back</div>
      </a>
    </div>
</template>

<script>
    import router from '@/router'

    export default {
        name: 'back-to-button',
        data () {
            return {
            }
        },
        methods:{
            toMainList(){
                $router.push('/mainlist');
            }
        }
    }
</script>

最佳答案

假设您使用 Jest 并通过 shallowMountmount 挂载组件进行测试,返回的包装器使您可以访问 Vue 实例(包括其所有方法)

const wrapper = shallowMount(Foo)
let instance = wrapper.vm // <- the Vue instance
let myMethod = instance.myMethod // <- a method callend 'myMethod' on the Vue instance

if(myMethod != undefined) {
  console.log("method 'myMethod' exists")
}

关于javascript - Vue.js 单元测试 - 如何检查组件是否有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56902174/

相关文章:

javascript - 将副标题添加到列表中但仅添加一次

javascript - 如何将文件导入范围样式标签而不会流血?

javascript - 测试 ReactJs 中使用的同构获取

objective-c - 测试核心数据应用

javascript - 既然这个对象数组在 JS 中有 x 和 y 坐标,如何对其进行排序?

javascript - 页面不显示 JSON 对象属性

unit-testing - 使用 angular 2 配置 karma webpack 的覆盖范围

vuejs2 - Vue JS Quasar 框架转换渲染与路由器 View 的冲突

javascript - Winnovative HTML 到 PDF 转换器

javascript - 如何使图像蒙版出现在悬停时