我正在使用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作为响应它也无法工作。
但是在nock中有或没有响应,拦截器返回true。 console.log node_modules \ nock \ lib \ interceptor.js:318 使用query(true)将http://somehost:80?sid=01&sid=02与GET http://somehost:80/location匹配:true
我最好的猜测是标题???
的问题node -v:v4.3.1
“jest”:“^ 21.2.1”, “nock”:“^ 9.0.21”, “superagent”:“3.5.2”