todo_基于Mocha的测试驱动开发
# 0.前言
在基于 Promise/A+
规范编写 Promise
源码时,在该规范提供的 github
仓库 (opens new window) 共提供了872
个测试用例,其中使用到的测试技术就是 mocha
+ chai
。
最近在进行coding
数据劫持方案时,就顺便研究了这种基于 Mocha
的测试驱动开发,特此记录。
这种测试驱动开发的方式的好处在于代码编写结束后,自己就可以完成测试。甚至有教程 (opens new window)可以在完全不了解 Promise
语法的情况下,先根据 A+
准则编写测试案例,然后一个一个满足条件,最终完成整个Promise
代码编写。
目前选择的方案如下:
mocha
:提供describe
、it
以及终端图形化界面。chai
:提供assert
断言。sinon
以及sinonChai
:测试辅助工具,主要用于对函数的测试。
# 1.如何同时对多个文件进行测试
某个项目的测试结构如下:
.
├── package.json
├── src
│ ├── defineProperty.js # 测试场景1
│ ├── defineProperty2.js # 测试场景2
│ ├── defineProperty3.js # 测试场景3
│ ├── defineProperty4.js # 测试场景4
│ └── proxy.js
└── test
├── index.js # 测试文件1
└── index2.js # 测试文件2
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
在 package.json
中配置如下:
{
"scripts": {
"test": "mocha test/**/*.js"
},
"devDependencies": {
"chai": "^4.3.6",
"mocha": "^9.2.1",
"sinon": "^13.0.1",
"sinon-chai": "^3.7.0"
}
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
这里的/**/*.js
使用的是 Glob
匹配语法,其中 **
被称为 Globstar
,含义是同时匹配多个文件。
编辑 (opens new window)
上次更新: 2022/04/06, 15:04:00