一、Jest简介
1、市面上主流的前端测试框架
- Jasmine : JavaScript测试框架(BDD-集成测试开发框架),这个也算是比较早的测试框架。
- MOCHA: 它是一个功能丰富的JavaScript测试框架,运行在
Node.js和浏览器中。- Jest:目前最流行的前端测试框架,几乎国内所有的大型互联网公司都在使用。
这三个框架用起来都差不多
2、Jest前端测试框架优点介绍
- 比较新:喜新厌旧是人的天性,新技术出来后你总想动手尝试一下。
- 基础很好:框架基础好就是性能好、功能多、简单易用。
- 速度快: 单独模块测试功能,比如说有两个模块A和B,以前都测试过了,这时候你只改动A模块,才次测试,模块B不会再跑一次,而是直接测试A模块。
- API简单 :API非常简单,数量也少。
- 隔离性好:Jest的执行环境都是隔离,这样就避免不同的测试文件执行的时候互相影响而造成出错。
- IDE整合:Jest直接可以和很多编辑器(VSCode)进行融合,让测试变的更加简单。
- 多项目并行:比如我们写了Node.js的后台项目,用React写了一个前台项目,Jest是支持他们并行运行,让我们的效率更加提高了。
- 快出覆盖率:(测试代码覆盖率) 对于一个项目的测试都要出覆盖率的,Jest就可以快速出这样的覆盖率统计结果。
二、基本环境搭建和简单使用
1、环境搭建
安装Node.js
然后我们需要Node的开发环境。
生成package.json文件
想要安装jest必须要用package.json文件来管理这个包,所以我们要使用初始化命令,来初始化。 使用npm init命令来快速生成一个package.json文件。
安装Jest框架
npm install jest@24.8.0 -D
-D 就保存到dev里边了,也就是说上线的时候我们不使用这个包,只有在开发的时候才进行测试。这样就安装完了Jest框架。
2、简单Dome使用
在项目根目录,新建两个文件,一个文件是student.js(被测试文件),另一个是。
student.test.js(测试文件)文件。
student.js(被测试文件)如下:
function teacher(grade) {
return grade=='一年级'?"李老师":grade=='二年级'?"王老师":"张老师"
}
function student(id) {
return id==1?"小明":id==2?"小红":"小刚"
}
module.exports = {
teacher,student
}
student.test.js(测试文件)如下:
const {teacher,student} = require('./student')
test('teacher 一年级',()=>{
expect(teacher("一年级")).toBe('李老师')
})
test('student id=1',()=>{
expect(student(1)).toBe('小明')
})
- test方法:Jest封装的测试方法,一般填写两个参数,描述和测试方法
- expect方法 :预期方法,就是你调用了什么方法,传递了什么参数,得到的预期是什么。
打开package.json文件,然后把里边的scripts标签的值修改为jest。
"scripts": {
"test": "jest"
},
然后运行命令:
npm run test
如果传参和得到的数据有差异,就会报出对应错误,将正确的expect(teacher("一年级")).toBe('李老师')改为错误的expect(teacher("一年级")).toBe('王老师')在运行,就会报出错误,如下:
学习日期:2022/1/18
视频参考:www.bilibili.com/video/BV1yA…
仅供个人学习和记录