Использование proxyquire для заглушки требует зависимости от сторонних модулей
Я пытаюсь использовать proxyquire, чтобы заглушить требование в модуле, который требуется сторонним модулем.
Пример:
Моему модулю требуется третий мод под названием 'foo'.
Этот модуль зависит от другой библиотеки, называемой "бар", и в баре есть требование, которое я хочу смоделировать. Это возможно?
в третьей стороне lib называется 'three':
var bar = require('bar');
в баре lib:
var thingiwanttomock = require('thingiwanttomock');
Тогда как-то так в моем тесте:
it("test", function() {
var mocked = proxyquire('thingiwanttomock', {});
});
РЕДАКТИРОВАТЬ:
Я думаю, что я хочу что-то вроде этого:
var three = proxyquire('three', {
'bar': {
'thingiwanttomock': {
'mocked': true
}
}
}
});
Однако, если я помещу консольный журнал в библиотеку столбцов и выведу значение переменной thingiwanttomock после require, это не мой поддельный объект.
в баре lib:
var thingiwanttomock = require('thingiwanttomock');
// this is not my object object
console.log('thingiwanttomock should be a mock', thingiwanttomock);
Изменит ли прокси-сервер то, что извлекается из оператора require в зависимой библиотеке lib? Может быть, именно в этом мое замешательство.