2016-12-22 12 views
2

は、私が他に応じて、1つ2つの機能を持つモジュールがあるとしましょう:のReWire - モックの依存、同じモジュールで

// example.js 
function A() { 
    return "hello"; 
} 

function B() { 
    return A(); 
} 

module.exports.B = B; 

私は使用することができますBに()への呼び出しを模擬するために再配線しますか()?

// example.test.js 
var assert = require('chai').assert, 
    rewire = require('rewire'), 
    example = rewire('./example.js'); 

example.__set__({ 
    A: function(return 'goodbye';), 
}); 

describe('test B in example.js', function() { 
    it('should return "goodbye"', function() { 
     assert.strictEqual(example.B(), 'goodbye'); 
    }); 
}); 

答えて

0

はい、これは機能します。私は何が問題を正確に解決したのか分からない。以前は、関数プロトタイプの一部として従属関数をエクスポートしていました(例:function.prototype.dependentFunction = function() { };)、これは何らかの形で再配線が邪魔になりました。私は/宣言まずそれを定義して、モデルに取り付けることで、私の機能を再定義:これを行う

function dependentFunction() { ... } 
exportedObject.prototype.dependentFunction = dependentFunction(); 

は私の問題を修正しました。

関連する問題