Egg里进行单元测试
首先先说一下,本人也只是刚刚摸索,主要还是看Egg的官方文档,有些也是还没掌握,下面是我个人浅薄之见,举两个get、post的小栗子:
'use strict';
const {app, assert} = require('egg-mock/bootstrap);
describe('test/controller/home.test.js', () => {
it('GET / after login', async () => {
app.mockSession({user: {userName: '测试'}});
await app.httpRequest()
.get('/')
.expect(200);
});
it('GET / show user', async () => {
const ctx = app.mockContext({ //获得ctx
query: {
id: 1,
},
});
assert(ctx.query);
await app.httpRequest()
.get('/show')
.expect(200);
});
it('POST/ create user', async () => {
app.mockCsrf();//设置csrf
return app.httpRequest()
.post('/create')
.type('form')
.send({
name: 'rose',
password: '123' //验证成功,在我的代码逻辑里状态码设为了201 Created
// password: 'rose123' => 这个在我的代码逻辑里会报错,状态码随便设为了404
})
.expect(201);//你所期望的结果
});
});