4

proxyquire を使用して、サードパーティのモジュールが必要とするモジュールの require をスタブしようとしています。

例:

私のモジュールには「foo」と呼ばれる 3 番目の mod が必要です。

そのモジュールは「bar」と呼ばれる別のライブラリに依存しており、bar にはモックしたい require があります。これは可能ですか?

「three」と呼ばれるサードパーティのライブラリでは:

  var bar = require('bar');

バーライブラリで:

  var thingiwanttomock = require('thingiwanttomock');

次に、私のテストで次のようなもの:

  it("test", function() {
    var mocked = proxyquire('thingiwanttomock', {});
  });

編集:

私が欲しいのは次のようなものだと思います:

var three = proxyquire('three', {
  'bar': {
    'thingiwanttomock': {
       'mocked': true 
     }
    }
  }
});

ただし、バー ライブラリにコンソール ログを配置し、require の後に thingiwanttomock 変数が何であるかを出力すると、それは私のモック オブジェクトではありません。

バーライブラリで:

  var thingiwanttomock = require('thingiwanttomock');
  // this is not my object object
  console.log('thingiwanttomock should be a mock', thingiwanttomock);

proxyquire は依存ライブラリの require ステートメントから取り込まれるものを実際に変更しますか? 多分それは私の混乱があるところです。

4

0 に答える 0