本系列是我的常用 koa 中间件使用笔记,防止忘记使用方法而作记录
supertest 是一个自动测试 koa、express 框架路由接口的工具,通常用来配合单元测试工具使用,本文使用它配合jest进行单元测试。
使用方法
//初始化koa并且绑定3000端口
const Koa = require('koa');
const app = new Koa();
app.listen(3000);
//使用koa router
const Router = require('koa-router');
const router = new Router();
app.use(router.routes());
router.get('/', (ctx, next) => {
ctx.body = 'welcome supertest'
})
//重点来了!supertest使用
const supertest = require('supertest');
const request = supertest(app.callback());
request.get('/').end((err, data) => {
if (err) {
console.log(err);
}
console.log(data.text); //输出返回结果
})
配合jest使用
关于 jest 使用方法 https://blog.csdn.net/nullccc/article/details/113865977
//app.js
const Koa = require('koa');
const app = new Koa();
app.listen(3000);
//使用koa router
const Router = require('koa-router');
const router = new Router();
app.use(router.routes());
router.get('/', (ctx, next) => {
ctx.body = 'welcome supertest'
})
module.exports = app;
//api.test.js
const supertest = require('supertest');
const app = require('./app');
const request = supertest(app.callback());
test('测试接口',async ()=>{
let result = await request.get('/');
expect(result.text).toEqual('welcome supertest')
})
//输出结果
// PASS ./api.test.js
// √ 测试接口 (36 ms)
// Test Suites: 1 passed, 1 total
// Tests: 1 passed, 1 total
// Snapshots: 0 total
// Time: 5.154 s
// Ran all test suites.