通过响应机构时,Nock不会截取请求与superagent

时间:2017-10-05 21:07:10

标签: reactjs jest superagent nock

我正在使用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”

0 个答案:

没有答案