这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天
1. 什么是自动化测试?
理想的软件开发 V 模型
现实的软件开发
2. 为什么要做自动化测试?
集成测试和前端自动化测试
参加研发的人员有很多,每个人的开发风格、代码风格不同,后面进行迭代的人员并没有了解清楚前面开发这段代码的人员的意图,从而影响到了以前开发好的功能。所以自动化测试可以保证以前开发好的功能在历史迭代的时候,因为其他研发人员的改动,从而影响到以前开发好的功能,导致隐藏很深的bug。
- 统一代码风格
- 组件 Readme 用例化,保持时效性
- 有效审视代码中的耦合逻辑
- 避免后续迭代影响到历史功能,发布 breaking change(不能与历史版兼容,如果你在该版本按使用历史版本的方法去写,会导致一些报错)
3. 前端自动化测试的技术选型?
Jest + React testing library + Cypress + storybook
测试框架:Jest ( 提供一个可运行时环境、测试结构、结果报告、代码覆盖、断言、mocking、snapshot )
测试辅助库:React testing library ( dom 查询,断言和事件的模拟,React18 推荐的UI自动化集大成测试辅助库 )
Cypress + storybook:E2E 端对端测试,覆盖单元测试不易于覆盖的复杂场景。
4. 如何进行前端自动化测试?
render方法中放入要进行测试的组件,它会帮我们自动进行渲染,渲染完成后,会自动将dom的内容通过est的方式注入。
screen.getByRole方法查询元素。
expect方法这里期待xx是一个xx元素。这一部分就是断言。
查询
5. 自动化测试的持续集成?
- 安装 Jest 和 React Testing Library
- 编写测试用例
- 运行测试
- 查看测试覆盖率