随着前端愈来愈多的代码,想要人工去测试某样功能段是否正常或者是api是否返回正常,这样无疑是耗费巨大的人工成本的,自动化测试便符合了这时我们的需要,以下便是作为单元测试的神器Jest一些用法
导入
yarn add --dev jest
使用
在src下创建相关test文件
(src/test/sum.js)
function sum(a, b) { return a + b; } module.exports = sum;
(src/test/sum.test.js)
const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); });
之后把jest命令加入到npm里
{ "scripts": { "test": "jest" } }
最后,运行yarn run test,你会看到cmd打印出
PASS ./sum.test.js ✓ adds 1 + 2 to equal 3 (5ms)
恭喜你,到这里你已经写了第一个Jest测试
相关函数
not: 等同于!
test: 一个test实例
expect: 期待值
toBe: 判断值是否相等
toEqual: 判断对象是否相等
toBeNull: 只匹配Null
toBeUndefined: 只匹配undefined
toBeTruty: 匹配任何if语句为真
toBeFalsy: 匹配任何if语句为假
toBeCloseTo: 浮点数之间进行比较
toMatch: 检查正则
toContain: 检查数组是否包含
toThrow: 抛出错误
测试异步函数
当你在测试代码中有异步函数的调用时,代码逻辑是无法通过正常的执行逻辑的
done: 在你异步函数里面加入done(),测试代码会等待done的执行完毕而结束
返回一个Promise,(需调用expect.assertions(level),并输入level值)
async/ await: 在回调函数前加入await(可以与resolves/rejects配合使用)