私はモジュールをテストしています。そのモジュール内で依存関係をモックアウトしたいと思います。私は可能性がある場合、私は、私のシナリオをフレームしてみましょう:だから私のモジュールでこの機能をJasmineやSinonでモックする方法はありますか?
myModule.prototype.func = function(callback) {
complexObj.doStuff('foo', function(err) {
callback(err, 'stuff');
});
};
、私は基本的にcomplexObj
を模擬しようとしています。この場合、オブジェクト全体を模倣するか、またはdoStuff
関数だけを模倣するかは、実際問題ではありません。 doStuff
は、Webサービスやファイルシステムとやり取りするようなことをしているとしましょう。 complexObj
は、依存性注射によってmyModule
に注射されている。私はJasmineとSinonを使ってこのオブジェクトと機能をモックまたはスタブしようとしていましたが、私は運がなかったので、私はこのようなものに頼りにしました。これはちょっとしたクルジーのようです:
私スペック:
describe('Testing myModule', function() {
it('should do stuff', function() {
ComplexObj.prototype.doStuff = function(arg, callback) {
callback(null); // If no errors, 'doStuff' returns null indicating no errors
};
var complexObj = new ComplexObj();
new myModule(complexObj).func(function(err, results) {
// Set up expectations...
});
});
});
あなたが見ることができるように、私はComplexObj
オブジェクトにdoStuff
機能を-mocking 擬似です。私はComplexObj
またはdoStuff
関数を心配していないので、私はちょうどにエラーがなかったことを示す「null」のコールバックをfunc
に呼び出しています。前にも触れましたが、これを処理するにはより良い方法があるはずです。提案?ジャスミンと
をそれがexpect' 'することをお勧めしますモックフェイクで? 'doStuff'は決して呼び出されないので、期待が実行されないと仮定すると、誤った前提が生じるでしょう。私は虚偽でヴァースを設定し、その関数を呼び出した後にそのヴァール上のものを期待する傾向があります。 – Giszmo