网站首页 > 技术文章 正文
名词解释
覆盖率 :测试代码占得比例
单元测试 :模块测试
集成测试 :整体测试
运行测试:
npm run test
初始化Jest
npx jest --init
配置文件
jest.config.js
生成代码覆盖率文件
npx jest --coverage
测试用例:
toBe 完全匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBe('希望的结果');
});
toEqual 内容匹配
test('这里是描述',()=>{
expect('需要匹配的值').toEqual('希望的结果');
});
toBeNull 为空匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBeNull();
});
toBeUndefined 未找到定义匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBeUndefined();
});
toBeDefined 未找到匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBeDefined();
});
toBeTruthy ture匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBeTruthy();
});
toBeFalsy falase匹配
test('这里是描述',()=>{
expect('需要匹配的值').toBeFalsy();
});
toBeGreaterThan 大于匹配器
test('这里是描述',()=>{
expect('需要匹配的值').toBeGreaterThan(需要检查的值,例如:1);
});
toBeLessThan 小于匹配器
test('这里是描述',()=>{
expect('需要匹配的值').toBeLessThan(需要检查的值,例如:1);
});
toBeGreaterThanOrEqual 大于等于匹配器
test('这里是描述',()=>{
expect('需要匹配的值').toBeGreaterThanOrEqual(需要检查的值,例如:1);
});
toBeLessThanOrEqual 小于于等于匹配器
test('这里是描述',()=>{
expect('需要匹配的值').toBeLessThanOrEqual(需要检查的值,例如:1);
});
toBeCloseTo 模糊匹配(浮点数问题,用于计算)
test('这里是描述',()=>{
expect('需要匹配的值').toBeCloseTo(需要检查的值,例如:1);
});
toMatch 字符串的含有查询
test('这里是描述',()=>{
expect('需要匹配的值').toMatch(需要匹配的值,例如:1);
});
toContain 数组含有匹配器(可以匹配set)
test('这里是描述',()=>{
const arr = [1,2,3,4]
const data = new Set(arr)
expect('需要匹配的值').toContain(需要匹配的值,例如:1);
});
toThrow 匹配异常器
const errorFunc = () ={
throw new Erro ('Erro')
}
test('这里是描述',()=>{
expect(throw).toThrow('Erro');
});
不抛出异常(.not)
test('这里是描述',()=>{
expect(throw).not.toThrow();
});
只执行这个测试
test.only('',()=>{
consloe.log('只执行这个测试')
})
自动测试
package.json 文件
"test" =>'jest --watchALL'
安装Babel(jest 不支持Es6+ )
npm install @babel/core@7.4.5 @babel/preset-env@7.4.5 -D
根目录新建.babelrc文件
{
"presets":[
[
"@babel/preset-env",{
"targets":{
"node":"current"
}
}
]
]
}
异步测试
// 方法一
test('这里是描述',(done)=>{
fetchData((data)=>{
expect(data).toEqual({
success: true
})
done()
})
})
// 方法二
test('这里是描述', ()=>{
return fetchTwoData().then((response)=>{
expect(response.data).toEqual({
success: true
})
})
})
// 测试异常
test('这里是描述', ()=>{
expect.assertions(1) // 断言,必须执行一次expect
return fetchThreeData().catch((e)=>{
expect(e.toString().indexOf('404')> -1).toBe(true)
})
})
// 使用async...await...
test('这里是描述', async()=>{
//resolves把现有对象转换成Promise对象,
//toMatchObject 匹配对象中的属性
await expect(fetchFourData()).resolves.toMatchObject({
data:{
success:true
}
})
})
Jest 四个钩子函数
beforeAll(()=>{
console.log('最先执行的测试用例')
})
afterAll(()=>{
console.log('最后执行的测试用例')
})
beforeEach(()=>{
console.log('每次测试前执行的')
})
afterEach(()=>{
console.log('每次测试后执行的')
})
测试分组
describe('最外层分组',()=>{
beforeAll(()=>{
console.log('最先执行的测试')
})
beforeEach(()=>{
console.log('执行前的测试')
})
describe('分组一',()=>{
test('测试一',()=>{
console.log('测试一')
})
test('测试二',()=>{
console.log('测试二')
})
})
describe('分组二',()=>{
test('测试一',()=>{
console.log('测试一')
})
test('测试二',()=>{
console.log('测试二')
})
})
afterEach(()=>{
console.log('测试完成后执行的')
})
afterAll(()=>{
console.log('最后执行的测试')
})
})
纯笔记,看起来可能有点枯燥。哈哈哈哈。
猜你喜欢
- 2025-05-22 一天涨 23k Star 的开源项目「GitHub 热点速览」
- 2025-05-22 如何选择VueJS的两个API Composition API或者Options API
- 2025-05-22 「评测」 声色——海贝 Crystal6 多单元动铁耳机
- 2025-05-22 常用的七种性能测试
- 2025-05-22 接口测试及其测试流程
- 2025-05-22 Java开发中的自动化测试框架:从零开始玩转测试工具
- 2025-05-22 别克君越1.5t机电单元维修
- 2025-05-22 前端代码Review,一次性掰扯明白!
- 2025-05-22 C++语言的单元测试与代码覆盖率
- 2024-09-22 vue入门:使用mockjs搭建vue项目测试服务器
你 发表评论:
欢迎- 05-24网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
- 05-24常见加密方式及Python实现
- 05-24pdf怎么加密
- 05-24aes256 加密 解密 (python3) 「二」
- 05-24深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 05-24Springboot实现对配置文件中的明文密码加密
- 05-24JavaScript常规加密技术
- 05-24信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)