2

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

4

0 回答 0