前端自动化测试——vue单元测试vue-test-utils

本文介绍了前端自动化测试中的单元测试,重点讲解了使用vue-test-utils进行Vue应用的单元测试。内容包括vue-test-utils的作用、为什么选择Jest作为测试框架、安装过程以及单元测试的基本步骤和测试Props的方法。文章还提供了相关资源链接以供进一步学习。
摘要由CSDN通过智能技术生成

自动化测试分类

单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。简单来说,单元就是人为规定的最小的被测功能模块,可能是一个单一函数或方法、一个完整的组件或类。

单元测试是最小巧也是最简单的测试——它们通过隔离单个组件的每一个部分,来在最小工作单元上进行断言。

单元测试侧重:检验函数的输出结果

e2e测试

e2e (端到端) 测试,致力于确保组件的一系列交互是正确的。它们是更高级别的测试,例如可能会测试用户是否注册、登录以及更新他们的用户名。这种测试运行起来会比单元测试和快照比对测试慢一些。

e2e测试侧重:从用户视角,对真实系统的访问行为进行仿真

快照比对测试

快照比对测试(snapshot testing)会保存你的 Vue 组件的标记,然后比较每次新生成的测试运行结果。如果有些东西改变了,开发者就会得到通知,并决定这个改变是刻意为之 (组件更新时) 还是意外发生的 (组件行为不正确)。

自动化测试框架

Jest、Mocha、Jasmine、sinon、chai、Karma、vue-test-utils都是什么?

名词 类型 名词
Jest 测试框架 Jest由Facebook开发,用于测试JavaScript代码(尤其是使用React JS开发的应用程序
集成了断言、JSDom、覆盖率报告等,是一款几乎零配置的测试框架
提供snapshot功能
Mocha 测试框架 基于JavaScript的自动化测试框架,用于测试使用Node.js运行的应用程序
比较年老的测试框架,在JavaScript界使用更广泛,可参考文献更多
Jasmine 测试框架 主要用于异步测试,是一个功能丰富的JavaScript自动化测试框架
Jasmine需要很多配置
sinon 测试框架 用于 JavaScript 的测试监视(spy)、桩(stub)和仿制(mock)功能。不依赖其他类库,兼容任何单元测试框架
chai 断言库 一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库
expect/should库
Karma 运行器 不是测试框架,也不是断言库,是允许你的JavaScript代码在复杂的浏览器运行的工具(抹平浏览器障碍)
vue-test-utils 单元测试工具库 vue官方提供的,专门为测试单文件组件而开发

为什么使用 vue-test-utils

vue-test-utils是vue官方的单元测试框架,提供了一系列非常方便的工具,使我们更轻松地为vue构建的应用来编写单元测试。主流的JavaScript测试运行器有很多,但vue-test-utils都能支持。它是测试运行器无关的。

为什么选择jest

因为 jest 包含了 karma + mocha + chai + sinon 的所有常用功能,零配置开箱即用

Vue官方是这样描述的:

Jest 是功能最全的测试运行器。它所需的配置是最少的,默认安装了 JSDOM,内置断言且命令行的用户体验非常好。不过你需要一个能够将单文件组件导入到测试中的预处理器。我们已经创建了 vue-jest 预处理器来处理最常见的单文件组件特性,但仍不是 vue-loader 100% 的功能。

vue-test-utils在Vue和Jest之间提供了一个桥梁,暴露出一些接口,让我们更加方便地通过Jest为Vue应用编写单元测试

安装

通过vue-cli创建模板脚手架时,可以选择是否启用单元测试,并且选择单元测试框架,这样Vue就帮助我们自动配置好了Jest

#1.运行命令,创建vue项目
vue create [project-name]

#2.选择"Manually select features" 和 "Unit Testing",以及 "Jest" 作为测试运行器。

#3. 安装完成,cd 进入项目目录中并运行
npm run test:unit

运行成功之后可以看到
在这里插入图片描述

demo介绍

在这里插入图片描述

为什么以spec.js命名

spec是specification(基准)的缩写,vue-test-uitls会默认找tests/unit下面的所有以spec后缀命名的js文件,跑文件里的测试脚本

单元测试的三个步骤

  1. 安排(Arrange):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值