使用Mocha對node項(xiàng)目接口進(jìn)行單元測試
一.安裝Mocha,supertest并配置Mocha
npm i mocha supertest -D
在package.json的script.test 注意配置--exit操作符可以運(yùn)行完畢后自動(dòng)關(guān)閉運(yùn)行腳本
{
"scripts": {
"test": "mocha --exit"
}
}
二.實(shí)戰(zhàn)測試項(xiàng)目接口
1. 簡單寫一個(gè)服務(wù)器
//app.js
const Koa = require('koa2');
const app = new Koa();
app.use((ctx,next)=>{
ctx.response.type = 'text/html';
ctx.body = `${ctx.url}`;
});
module.exports = app;
2. 寫測試代碼
//app.test.js
const
request = require('supertest'),
app = require('../app');
describe('#test koa app',function(){
let server = app.listen(9900);
describe('#test server',function(){
it('#test GET /',async function(){
await request(server).get('/sky').expect(200,'/sky');
})
})
})
3. 進(jìn)行測試
skymac@skymacdeMBP machajs % npm test
> machajs@1.0.0 test /Users/skymac/Desktop/all-demo/machajs
> mocha
#test koa app
#test server
(node:23361) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
? #test GET /
1 passing (25ms)