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