3

我正在为 ts 节点 api 编写单元测试。

我正在使用 chai-http 来实例化/模拟请求,但是使用此处文档中提到的 .query 选项似乎实际上并未将我的查询参数添加到请求对象 qs 参数中。

const r = chai.request(server)
                .get('/connections')
                .query({
                    page: 1,
                    size: 10,
                    connection_id: id
                 })

ConnectionController.List(r, null);

检查 req 对象,它已将它们添加到 _header: _path: 和 :url 但在 _query 或 qs 下没有任何内容。接受的底层函数req将尝试使用 req.query.page...req.query.size等解析值,但由于请求查询对象未定义而中断。

r.qs = Array(0) []

但是 _header: , _path: 和 url: 显示

"GET /connections?page=1&size=10&connection_id=some_random_connection_id HTTP/1.1

有谁知道为什么会这样?
是否有不同的 mocha 请求库可以提供正确的查询参数分配?

我已经尝试像这样手动添加它们,它可以工作并将它们添加到 qs. 但我希望 .query() 将它们添加到此处。

r.query.page = '1';
r.query.size = '10';
r.query.connection_id = 'random_id';
4

0 回答 0