Vue测试 - 单元测试调研

325 阅读1分钟

测试管理工具

Karma

能力:

  1. 驱动浏览器
  2. 管理测试框架Mocha等
  3. 集成webpack
  4. 集成代码覆盖率功能

是对底层能力的集成

测试框架

Mocha VS Jest VS Jasmine

Jest

  1. Facebook出品,基于Jasmine,最受欢迎
  2. 配置项最少,全家桶类型
  3. 支持断言和mock
  4. 支持快照
  5. 附带测试报告,基于Istanbul
  6. 社区不成熟(对于vue-loader 支持一般)
  7. 语法最方便

Mocha

  1. 使用的人最多
  2. 直接去跑测试代码,断言还是需要断言库的能力
  3. 生成测试报告(样式可定义)
  4. 可以在浏览器端跑测试代码
  5. 可定义钩子(before)等
  6. 可以进行异步测试
  7. 额外配置较多
  8. 社区成熟(对于vue-loader 100%支持)

Jasmine

  1. 跑在代码中(只能在浏览器中运行),耦合性太强
  2. 无法生成测试报告
  3. 自带断言库
  4. 可定义钩子(before)等
  5. 可以进行异步测试(比较老)

Ava

  1. 异步支持特别好
  2. 快照,断言库需要第三方支持

Tape

  1. 代码体积最小
  2. 额外功能都需要额外导入
  3. 自带断言库

架构图