一、背景
随着平台功能越来越多,接口及关联数据复杂,传统功能测试无法满足覆盖测试要求,顾搭建针对TypeScript的自动化单元测试。
该测试体系具有以下优点:
- 缩短测试时间:通过自动化测试体系,可以一键执行测试用例,生成测试报告以及代码覆盖率报告。开发人员可根据报告分析出问题所在,以及未测试的代码。
- 更高的投资回报率:自动化测试比传统功能测试速度更快,且测试用例可重用,避免功能开发后“关联功能”的重复测试。减少了测试以及开发时间,对快速相应要求极高的市场极为有益。
- 早期缺陷检测:编写白盒测试用例阶段,相当于做了一次代码走查,可分析出代码存在的浅显逻辑错误;白盒测试执行阶段,相当于将所有功能执行一至多遍,将代码逻辑缺陷暴露在系统测试之前。
- 更高的测试覆盖率:自动化单元测试的测试范围更全面,相较于传统测试方式,可覆盖更全面的代码逻辑以及功能逻辑,从而降低发布后的故障概率。
二、技术栈概念
Karma(卡玛)是一个基于node.js的JavaScript测试执行过程管理工具,它可以拉起所有主流浏览器,加载测试脚本,然后运行测试用例,完成后关闭浏览器。
Mocha(摩卡)是一个单元测试测试框架/库,它可以用来写测试用例。
Chai 是用于节点和浏览器的BDD / TDD断言库,可以与任何javascript测试框架完美地配对,支持BDD风格的expect、should和TDD风格的assert。
我们主要就是用Karma与Mocha来实现自动化测试。
三、技术栈的安装及使用