22

嗨,我正在尝试nock 库,但正在努力匹配查询字符串上的随机模式。我认为像下面的代码这样的东西应该可以工作,但我什么也做不了。

  var nock, request;

  request = require('request');

  nock = require('nock');

  nock("http://www.google.com").filteringPath(/.*/g).get("/").reply(200, "this should work?");

  request("http://www.google.com?value=bob", function(err, res, body) {
    return console.log(body);
  });
4

3 回答 3

20

我以前没有使用过这个,但是通过阅读文档可能会有所帮助。

像这样的东西怎么样:

var nock = require('nock');
var request = require ('request');

nock("http://www.google.com")
    .filteringPath(function(path){
        return '/';
    })
    .get("/")
    .reply(200, "this should work?");

request("http://www.google.com?value=bob", function(err, res, body) {
    return console.log(body);
});
于 2013-02-04T04:55:20.423 回答
6

我们也可以使用正则表达式

nock("http://www.google.com")
   .get(/.*/)
于 2019-05-09T06:32:08.530 回答
5

只是为了完成 thtsigma 的回答:

如果要匹配任何范围(协议、域和端口),还可以添加范围过滤

var nock = require('nock');
var request = require ('request');

nock("http://www.whatever-here.com", {
    filteringScope: function(scope) {
      return true;
    }
  })
  .filteringPath(function(path){
      return "/";
  })
  .get("/")
  .reply(200, "this should work?");

request("http://www.google.com?value=bob", function(err, res, body) {
  return console.log(body);
});

这样,任何 url 都将被匹配。

于 2016-10-06T09:28:52.140 回答