2、单元测试框架优劣及选型

1、框架选型 

-  jasmine 

  - BDD风格测试框架,

  - 开箱即用

  - 自带断言及mock功能

  - 比较老,坑基本都被踩过

  - 不易扩展

- Jest

  - 基于 jasmine,

  - 开箱即用配置少,API简单

  - 支持断言和仿真

  - 支持快照测试

  - 对 react 友好

  - 较新,社区不十分成熟

- mocha

  - tj出品,

  - 可运行在node端和浏览器端

  - 需要自己搭配断言库和仿真等

  - 可使用快照测试,但依然需要额外配置

  - 需要较多配置

  - 社区成熟用的人多

  - 灵活,可配置

 

- Qunit

  - 出自jquery,

  - 后独立出来不再依赖jquery,

  - 已经被其他框架从各方面超越

- intern

  - SitePen公司推出

  - 功能比较齐全

  - 使用人少,比较小众

2、断言库 

- chai

  - 目前流行的断言库,

  - 支持BDD、TDD两种风格,全面

- should

  - TJ出品,

  - API予以较好,

  - 文档不足

- expect

  - should的子集,

  - 没有亮点

- assert

  - node核心模块,

  - node运行环境可以直接使用,

  - 语法弱

3、mock库 

- sinon.js

  - 提供spies、stubs、mocks,还有fake timers、fake XmlHttpRequest 等功能

经过选型,最终决定使用

mocha + chai + sinon

 

名词解释:

  • 测试框架:即组织你的测试,当前流行 BDD 的测试结构。
  • 快照测试(snapshot testing):测试 UI 或数据结构是否和之前完全一致,通常 UI 测试不在单元测试中
  • 仿真(mocks, spies, and stubs):获取方法的调用信息,模拟方法,模块,甚至服务器

 

posted @ 2020-09-13 17:36  SlightFly  阅读(331)  评论(0编辑  收藏  举报