(一)Jest 优点
1. 速度快:
之前跑过 A、B两个模块的单元测试,如果A改了,B没改,再跑的时候,只重新检测A,不会重新跑B。Jest速度快
2. IDE整合:
vscode、webstorm 可以整合使用
3. 多项目运行:
前端 vue,bff node 可以同时运行
4. 能够导出覆盖率
(二)环境搭建
1. 安装jest
新建文件夹 ---> npm init -----> yarn add jest
(三)简单小例子
1. 只要以 .test.js 结尾,jest 自动化测试会自动找到这个问件,不用额外的处理
2. test 方法是 jest 提供的一个方法,接受两个参数,第一个参数是描述,第二个参数是函数,执行的判断方法
3. expect() 传入的值是函数根据某个例子运行的结果,.toBe() 方法,进行判断 是否一致
index.js
function isInArr (number, arr) {
return arr.includes(number)
}
function getIndex (letter, word) {
return word.indexOf(letter)
}
module.exports = {
getIndex,
isInArr
}
index.test.js
const { isInArr, getIndex } = require('../code/index')
test('判断一个数是否在数组里test1', () => {
expect(isInArr(3, [1,2,3])).toBe(true)
})
test('判断一个数是否在数组里test2', () => {
expect(isInArr(3, [1,2,23])).toBe(false)
})
test('判断某个字符位置test1', () => {
expect(getIndex('h', 'hello')).toBe(0)
})
test('判断某个字符位置test2', () => {
expect(getIndex('o', 'hear')).toBe(-1)
})
名字要以 .test.js结尾,jest 框架自动检测
运行
package.json
npm run test 运行
case 全部通过~
异常情况:如果函数方法写的不对,逻辑有问题
Expect 是期望的结果,Received 是目前运行的结果