質問: { "action": function() { Module.actiomImpl(someUtil) }, "actionImpl": function(someUtil){ someUtil.method() } } ``` moduleのsomeUtilをスタブにしたいと考えているのですが、上記のような実装のnode_moduleの依存性を解決する方法を教えていただけますか?
回答: proxyquireというモジュールを利用すると、便利です。 ``` var proxyquire = require('proxyquire'); proxyquire("./path/to/use/site", {"great-util": { method: function() { /* this is mock */ } }}); ``` 第1引数に渡した文字列のモジュールから読み込む依存モジュールの実装が、第2引数に渡したオブジェクトになります。 第2引数は、キーがモジュール名、値が`module.exports`に与える実装オブジェクトです。 私の利用例では、ブラウザを開くモジュールをSpyに置き換えています。