Подтвердить что ты не робот

Библиотека nock - как соответствовать любому URL-адресу

Привет, я пытаюсь использовать библиотеку 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);
  });
4b9b3361

Ответ 1

Я не использовал это раньше, но, читая docs, возможно, это поможет.

Как насчет чего-то вроде этого:

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);
});

Ответ 2

Просто чтобы завершить ответ 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 будет соответствовать.

Ответ 3

Мы также можем использовать регулярные выражения

nock("http://www.google.com")
   .get(/.*/)