广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >前端自动化测试Vue中TDD和单元测试示例详解
  • 678
分享到

前端自动化测试Vue中TDD和单元测试示例详解

Vue TDD单元测试Vue 前端自动化测试 2023-02-14 12:02:00 678人浏览 泡泡鱼
摘要

目录1、简单用例入门2、快照测试3、覆盖率测试4、结合 Vuex 进行测试1、简单用例入门 Vue 提供了 @vue/test-utils 来帮助我们进行单元测试,创建 Vue 项

1、简单用例入门

Vue 提供了 @vue/test-utils 来帮助我们进行单元测试,创建 Vue 项目的时候勾选测试选项会自动帮我们安装

先来介绍两个常用的挂载方法:

  • mount:会将组件以及组件包含的子组件都进行挂载
  • shallowMount:浅挂载,只会挂载组件,忽略子组件

再来看一个简单的测试用例:

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.props("msg")).toBe(msg);
  });
});

shallowMount 会返回一个 wrapper,这个 wrapper 上面会包含很多帮助我们测试的方法,参考:v1.test-utils.vuejs.org/zh/api/wrap…

2、快照测试

测试用例写法如下: 第一次测试会保存 wrapper 的快照,第二次会比较当前 wrapper 和快照的区别

describe("HelloWorld.vue", () => {
  it("renders props.msg when passed", () => {
    const msg = "new message";
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg }
    });
    expect(wrapper).toMatchSnapshot();
  });
});

3、覆盖率测试

覆盖率测试是对测试完全程度的一个评估,测试覆盖到的业务代码越多,覆盖率越高

在 jest.config.js 中我们可以设置 collectCoverageFrom,来设置需要进行覆盖率测试的文件

我们可以测试所有的 .vue 文件,忽略 node_modules 下所有文件

要注意,在 Vue 中配置 jest,参考:v1.test-utils.vuejs.org/zh/guides/#…

然后添加一条 script 命令,就能进行测试了:

"test:unit": "vue-cli-service test:unit --coverage"

执行命令会生成 coverage 文件夹,Icov-report/index.html 里会可视化展示我们的测试覆盖率

4、结合 Vuex 进行测试

如果我们在组件中引入了 Vuex 状态或者使用了相关方法

在测试用例里,挂载组件的时候只需要传入 vuex 的 store 即可

import store from "@/store/index";
const wrapper = mount(HelloWorld, {
  store
});

以上就是前端自动化测试Vue中TDD和单元测试示例详解的详细内容,更多关于Vue TDD单元测试的资料请关注编程网其它相关文章!

--结束END--

本文标题: 前端自动化测试Vue中TDD和单元测试示例详解

本文链接: https://www.lsjlt.com/news/195986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作