一、初始化项目
1. 创建文件夹jest-sample
2.初始化项目(npm下载包文件)npm init
3. 下载npm依赖包
npm install jest -D
二、简单的测试案例
main.js
//在node环境中,使用的是commonJs规范 function add(a, b) { return a + b } module.exports = {add}
main.test.js(根据jest默认配置,自动匹配test.js文件)
const math = require('./main.js'); const {add} = math; test('test add', () => { expect(add(3,7)).toBe(10); })
三、简单配置
npx jest --init
commonJS module->es module
{ "presets": [ [ "@babel/preset-env", { "targets": { "node": "current" } } ] ] } // npm run jest // jest(babel-jest), 检测是否安装babel // babel-core // 获取babel配置 //运行代码之前进行转换
四、jest匹配器
- toBe(对象引用地址以及内容相等)
- toEqual(对象内容相等)
- toBeNull
- toBeUndefined
- toBeTruthy
- toBeFalsy
- not
- toBeGreaterThan
- toBeLessThan
- toBeGreaterThanOrEqual
- toBeCloseTo
- toMatch(String)
- toContain(Set, Array)
- toThrow
五、jest命令行工具
npm run jest --watchAll 显示所有命令
- f(执行上次失败的测试案例,按f退出该命令)
- o(执行发生变化的文件--watch默认进入模式)git initç
- a(--watchAll)
- p(根据正则表达式(匹配测试用例文件名)监听测试文件)
- t(根据正则表达式(匹配测试用例名字)监听测试文件)
- q(退出监听模式)
六、jest中的钩子函数
如果在测试之前需要做一些初始化准备,使用jest的钩子函数。
- beforeAll
- beforeEach
- test
- afterEach
- afterAll
分组:describe
作用域
七、测试异步代码
done()
assertions(1)
resolves
rejects
async await
八、jest mock
- jest.fn()
- jest.mock()