首页 > 其他分享 >jest快照测试demo(vue)

jest快照测试demo(vue)

时间:2022-11-23 15:14:32浏览次数:41  
标签:vue 快照 demo HelloWorld jest msg unit

1.vue create xx

 

 2.选择jest

.

3.执行npm run test:unit

 

结果:

 

 

 

 

 4.快照测试:

import { shallowMount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'

describe('HelloWorld.vue', () => {
  it('renders props.msg when passed', () => {
    const msg = 'new message'
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg }
    })
    // expect(wrapper.text()).toMatch(msg)
    expect(wrapper.html()).toMatchSnapshot()
  })
}) 

再次执行:

npm run test:unit

 第一次运行后,Jest 将在与原始测试所在的目录中生成一个__ snapshots __目录。让我们来看看新生成的快照。

// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`HelloWorld.vue renders props.msg when passed 1`] = `
<div class="hello">
  <h1>new message</h1>
  <p>
    For a guide and recipes on how to configure / customize this project,<br>
    check out the
    <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
  </p>
  <h3>Installed CLI Plugins</h3>
  <ul>
    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-unit-jest" target="_blank" rel="noopener">unit-jest</a></li>
  </ul>
  <h3>Essential Links</h3>
  <ul>
    <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
    <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
    <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
    <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
    <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
  </ul>
  <h3>Ecosystem</h3>
  <ul>
    <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
    <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
    <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
    <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
    <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
  </ul>
</div>
`;

Jest 在每个步骤都渲染 Vue 组件,并将其渲染状态保存为纯文本。下次运行测试时,如果渲染的组件的任何部分发生更改,则测试将失败并指出差异。

如果您想要更改组件的行为,则需要重新生成这些快照。为此,请运行:

npm run test:unit -- -u

 

标签:vue,快照,demo,HelloWorld,jest,msg,unit
From: https://www.cnblogs.com/vickylinj/p/16918364.html

相关文章

  • vue 状态类展示使用红绿圆点
    vue状态类展示使用红绿圆点通常对于一些在线、离线类的展示使用图标展示比使用文字描述会更加清晰直观。项目中使用的代码如下:HTML<el-table-columnprop="status"lab......
  • vue js文字跑马灯基础版本
    1.html原生方法<marquee>123123</marquee>2.定时器方法letpaymentPromptText=document.getElementById('paymentPromptText');//文本的总宽度consttext......
  • 常用js库和框架(vue&element ui与webpy)
        编写前端代码的同学都知道,目前最火的前端代码是vue&elementui,而后端个人又比较喜欢用webpy,那么这两者是怎么配合的。现在都说要实现前后端分离,两者的json数据......
  • 将 vue.js 获取的 html 文本转化为纯文本
    我存入数据表中的数据是使用html格式,获取数据是使用vue获取。遇到了一个问题,就是界面上显示的数据是html格式的,但是我需要它显示纯文本。怎么做呢?首先在js中......
  • Vue和Electron分离开发,一起打包
    分别安装Vue和Electron参照地址:https://cn.vuejs.org/guide/quick-start.html#creating-a-vue-applicationhttps://www.electronforge.io/npminitvue@latestnpmin......
  • vite+vue3批量导入静态资源图片;动态绑定大量图片
    vite版本:vite3;vue版本:vue3打包上线后发现,动态绑定的图片皆失效。单图可用import导入解决,但是若有大量图片,一一导入则耗时耗力。vue2+webpack可用require解决批量导......
  • vue 使用i18n 实现中英文切换 表单校验提示不更新问题
    在用i18n实现中英文切换的时候,出现了在表单中校验不更新的问题,尝试多种方式无果,下面这个方法值得一试。可轻松解决此问题。data(){ruleInline:{userName:......
  • 直播软件搭建,vue3应用elementPlus table并滚动显示
    直播软件搭建,vue3应用elementPlustable并滚动显示1、首先使用了elementplus的table <template> <div>  <el-table   ref="table1"   :data="state......
  • vue版本兼容问题
    一些兼容问题 VueCLI4.5以下,对应的是Vue2 VueCLI4.5及以上,对应的是Vue3,也可以手动选择Vue2vue 3.0以下兼容的是element-ui前端组件库; vue3.0兼容的是eleme......
  • vue中使用tinymce
    之前使用了好几种引用tinymce的方式都已失败而告终,也找原因了。因为下面这个还是成功了,记录一下 1、引用tinymce-vuenpmi @tinymce/tinymce-vue-S2、封装控件<te......