Vue 和 Jest 单元测试组件

Posted

技术标签:

【中文标题】Vue 和 Jest 单元测试组件【英文标题】:Vue and Jest unit testing components 【发布时间】:2019-01-02 09:17:46 【问题描述】:

我是 Vue js 的新手,我开始使用 Jest 进行单元测试。我不知道从哪里以及如何开始。我有这段 Vue 代码,我想用 Jest 进行测试。任何提示或想法我都会非常感激。 我读到我应该使用 Vue test-utils 中的 shallowMount 来避免组件测试期间的麻烦

<template >
  <div class="wrapper">
    <div class="user">
      <span> user.substr(0, 4) </span>
    </div>
  </div>
</template>
<script>
export default 
  props: 
    user: 
      type: String,
      required: true
    
  

</script>

目前我有这样的事情,但我不知道如何继续

import  shallowMount  from '@vue/test-utils'
import User from '../User.vue'


describe('User', () => 
  it('Should substract four letters', () => 
    const wrapper = shallowMount(User, 
      props: 
        ''
      
    )
  )
)

【问题讨论】:

【参考方案1】:

您可以阅读vue-test-utils 官方文档,它非常清晰且很有帮助。要了解如何模拟函数、存根和其他测试内容,请参阅 Jest 文档。

在您的示例中 - 使用 propsData 而不是 props(查看上面的文档),您应该以一些断言结束您的每个测试用例(检查期望):

describe('User', () => 
   it('Should substract four letters', () => 
      const wrapper = shallowMount(User, 
      propsData: 
        user: 'User00000000'
      
    )
   // check that span element has correct substring
   expect(wrapper.find(".user span").text()).toBe('User');
  )
)

【讨论】:

以上是关于Vue 和 Jest 单元测试组件的主要内容,如果未能解决你的问题,请参考以下文章

在 Nuxt、Vue、jest 和 Vuetify 中为项目编写单元测试

如何使用 jest 在单元测试中测试引导 vue 组件的存在?

使用 Jest、Vue、Vuetify 和 Pug 运行单元测试

使用 Jest 进行 Vue 单元测试

带有 vue-test-utils 和 Jest 的 Vue.js 单元测试用例失败

模拟安装挂钩 Jest 测试单元