在用egg-mock/bootstrap测试controller时ctx.query和ctx.params怎么设置才对?
如题,在对controller进行测试过程中 接口:
PUT /a/:uid/c
describe('test/controller/cloud/group.test.js', () => {
describe('PUT /a/:uid/c', () => {
it('return 612 code and msg: 参数不合法', () => {
return app.httpRequest()
.post('a/:uid/c')
.send({ uid: ''}) //<-------这么传参对不对
.set('Cookie', 'token=19rYp67OuWsWTuifT8DNbuo5kbp4sjLTWul2xFM8mg5jOD44HbdugVPkEbsMrlQL')
.expect(200)
.expect({
code:612,
msg:**
});
});
});
});
我想应该是那种
/a/b/c?name=
这个name可以set设置
但是上述那种方式是怎么去设置的呢?
交流~
2 回复
看 https://github.com/visionmedia/supertest 文档。
.post('a/123/c').query({ action: 'edit', city: 'London' })
没有什么 'a/:uid/c'
的,那个是匹配路由,你真实请求的时候肯定是要真实的 URL
@atian25 噢 我明白了
app.httpRequest().[httpVerbs].(真实URL)
eg:
.post('a/123/c') 对应的路由是/a:uid/c
.post('a/b/c?name=hello') 对应的路由是 /a/b/c?name=
我的理解对吗?