使用TypeScript编写mocha单元测试
TDD(Test-Driven Development)测试驱动开发是敏捷开发中的一项核心的实践技术,要求在开发编写代码之前,先编写测试用例。既保证了开发过程的严谨,也对后期维护和重构有很大的帮助。今天在这里就和大家一起从0搭建一个单元测试框架。
- 技术准备
开发使用typescript作为主要开发语言,为了更好的理解,这里不采用任何集成框架。
单元测试工具使用mocha,使用chai作为断言工具
测试报告使用mochawesome作为测试报告生成工具
在这里我们使用之前已有的node + typescript项目作为示例,目录结构如下
开始安装mocha和chai。由于我们计划结合测试typescript,并且用其作为测试用例的编写语言,因此我们还要安装@types/mocha 和 @types/chai
yarn add mocha chai @types/mocha @types/chai --save-dev
在使用之前,我们按照惯例去官网阅读一下“说明书”
官网地址:https://mochajs.org/
按照官网的介绍,有两种方式使用mocha,一种通过mocha的cli命令通过控制台运行测试,另一种方式是通过mocha的命令生成一个框架,然后通过页面浏览器环境进行测试。这里,我们采用第一种方式,更方便进行集成测试。
首先我们创建一个待测试的代码
demo.ts:
/**
* demo of origin for unit test
*/
export class Demo {
/**
* @name getSum
* @description 求和demo
* @param arg
*/
public static getSum (arg: Array<number>): number {
let sum: number = 0;
for (let i in arg) {
sum += arg[i];
}
return sum;
}
}
这里是一个简单的求和方法,下面搭建demo.test.ts对其进行测试
demo.test.ts
/**
* demo of unit test
*/
import {
expect } from 'chai';
import {
Demo } from './demo';
// Demo类的测试声明
describe('Demo', function () {
describe('Demo.getSum', function() {
it(