在用egg-mock/bootstrap测试controller时ctx.query和ctx.params怎么设置才对?
发布于 7 年前 作者 black-giser 3720 次浏览 来自 问答

如题,在对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=

我的理解对吗?

回到顶部