Библиотека 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);
});
Ответы
Ответ 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(/.*/)