需求与解决思路
一名好的大前端开发人员,一定是一名好的“配置工程师”(滑稽脸)。而最近刚到团队,被安排给 vemoJS 和 cloudbase-cli 写测试用例,并且要保证覆盖率!
这里主要以 vemojs 下的测试用例为主来讲解 Jest 要注意的地方。测试代码在:https://github.com/vemoteam/vemo/tree/master/test
<!-- more -->
观察 vemojs 这个项目,如果想进行全面测试,需要解决以下问题:
- 以 utils.js errror.js 等文件,对应的是单元功能测试
- 以 cloudbase.js 文件为代表的,需要请求远程 API,模拟不同的情况
- 以 index.js 中的 http 和静态服务器为代表的,测试服务是否正常启动
- 以 index.js 中的 websocket 服务为代表的,模拟用户使用环境,测试 ws 是否正常
- 提供测试覆盖率
针对以上问题,解决思路总结如下:
- 函数功能测试:断言匹配功能
- 请求 API:mock 模块和函数,例如测试用例中的
axios
就是被 mock 的
- http 和静态服务:测试代码中启动服务后,利用
axios
等第三方请求库请求服务
- websock 服务:借助 puppeteer(内置无头浏览器)来模拟用户使用,监听数据变动
- jest 自带覆盖率统计工具
测试过程
针对上面的步骤以及核心的 jest 配置,分别做讲解。
1. 配置文件和命令行