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 ステートメントから取り込まれるものを実際に変更しますか? 多分それは私の混乱があるところです。