需求与解决思路

一名好的大前端开发人员,一定是一名好的“配置工程师”(滑稽脸)。而最近刚到团队,被安排给 vemoJS  和 cloudbase-cli 写测试用例,并且要保证覆盖率!

这里主要以 vemojs 下的测试用例为主来讲解 Jest 要注意的地方。测试代码在:https://github.com/vemoteam/vemo/tree/master/test

<!-- more -->

观察 vemojs 这个项目,如果想进行全面测试,需要解决以下问题:

  1. 以 utils.js errror.js 等文件,对应的是单元功能测试
  2. 以 cloudbase.js 文件为代表的,需要请求远程 API,模拟不同的情况
  3. 以 index.js 中的 http 和静态服务器为代表的,测试服务是否正常启动
  4. 以 index.js 中的 websocket 服务为代表的,模拟用户使用环境,测试 ws 是否正常
  5. 提供测试覆盖率

针对以上问题,解决思路总结如下:

  1. 函数功能测试:断言匹配功能
  2. 请求 API:mock 模块和函数,例如测试用例中的 axios 就是被 mock 的
  3. http 和静态服务:测试代码中启动服务后,利用 axios 等第三方请求库请求服务
  4. websock 服务:借助 puppeteer(内置无头浏览器)来模拟用户使用,监听数据变动
  5. jest 自带覆盖率统计工具

测试过程

针对上面的步骤以及核心的 jest 配置,分别做讲解。

1. 配置文件和命令行

Powered by Fruition