文章目录
  1. 1. 安装
  2. 2. 配置Package.json
  3. 3. NodeJS主文件
  4. 4. 编写测试用例
  5. 5. 运行

最近同时写几个客户端和几个服务端,还跟老王一起调unity特效,脑袋有点炸,做事情也顾头不顾尾。但是幸好二王(老王和王老师)都是清醒人,前天王老师提醒我,现在中间件部分的测试,用网页按钮来一个个测试太不科学了,应该写测试用例来自动化测试。

啊,我感到醍醐灌顶,如梦初醒 Σ(っ °Д °;)っ

对于我们这种惜时如金的小团队,这不是基本操作吗?二话不说,就开始找nodejs的测试框架。

过程省略,总之选了 Mocha + Chai ,不是别的,因为这个组合如果说自己的使用率在nodejs排第二,那没人敢排第一。而且可以找到的案例和支持特别丰富。那就赶紧入手开始吧。

安装

1
npm install --save-dev mocha chai chai-http

配置Package.json

1
2
3
4
5
6
7
...
"scripts": {
...
"test": "mocha --timeout 10000"
...
}
...

默认是2秒超时,但是链上返回有时特别慢,所以改成10秒了。

NodeJS主文件

1
2
3
...

module.exports = app;

必须要将主文件作为模块导出,提供给Mocha使用。

编写测试用例

创建 test/web3.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
process.env.NODE_ENV='development'; //使用测试环境

const chai = require('chai');
const chaiHttp = require('chai-http');
const server = require('../app'); //引入NodeJS主文件
const should = chai.should();

chai.use(chaiHttp);

describe('Contract', () => {
describe('/GET initWeb3', () => {
it('it should init web3', (done) => {
chai.request(server)
.get('/initWeb3')
.end((err, res) => {
res.should.have.status(200);
...
done();
});
});
});
...
});

...

运行

执行 npm run test

输出结果

1
2
3
4
5
6
7
8
9
Server is running at: http://127.0.0.1:8080


Contract
/GET initWeb3
√ it should init web3 (84ms)


1 passing (90ms)

收工

♦ 本文固定连接:http://gsgundam.com/2021-12-05-use-mocha-chai-for-test-case-in-nodejs/

♦ 转载请注明:GSGundam 2021年12月05日发布于 GSGUNDAM砍柴工

♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)