我正在使用 superagent 进行 api 调用,当我在回复中传递 JSON 时,nock 不会拦截调用。如果我什么都不通过,只是响应代码,它工作正常。
- - 单元测试 - -
import nock from 'nock'
nock('http://somehost:80').log(console.log)
.defaultReplyHeaders({'content-type': 'application/json'})
.get('/location').query(true)
.reply(404);
---- 中间件-----
import request from 'superagent';
request.get('http://somehost:80/location')
.query(action.searchParams)
.end((err, res) => {
console.log("response ", res)
console.log("error ", err)
});
当我在上面运行测试用例时,它会记录响应和错误。但是当我将 nock 更改为:
nock('http://somehost:80').log(console.log)
.defaultReplyHeaders({'content-type': 'application/json'})
.get('/location').query(true)
.reply(200,{hello:'hello!!!!'});
控制台中没有记录任何内容。即使我只是将 String 作为响应传递它也行不通。
但是无论是否有响应,拦截器都会返回 true。console.log node_modules\nock\lib\interceptor.js:318 匹配http://somehost:80?sid=01&sid=02到 GET http://somehost:80/location with query(true): true
我最好的猜测是标题有问题???
节点-v:v4.3.1
“笑话”:“^21.2.1”,“nock”:“^9.0.21”,“超级代理”:“3.5.2”