Использование 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? Может быть, именно в этом мое замешательство.

0 ответов

Другие вопросы по тегам