明らかになったモジュールパターンとの簡単なロマンスの後、私はユニットテストモジュールに関しては後退を実現するようになりました。しかし、私がモジュールをテストする私のアプローチであるのか、何らかの形の回避策があるのかどうかは決めることができません。私は(ジャスミンを使用して)publicMethodBにpublicMethodA介してつながるさまざまな経路をテストしたい場合モジュールパターンの表示 - ジャスミンによるユニットテスト
var myWonderfulModule = (function() {
function publicMethodA (condition) {
if(condition === 'b') {
publicMethodB();
}
}
function publicMethodB() {
// ...
}
return {
methodA : publicMethodA,
methodB : publicMethodB
}
}());
:
は、以下のコードを検討してください。
it("should make a call to publicMethodB when condition is 'b'", function() {
spyOn(myWonderfulModule , 'publicMethodB');
myWonderfulModule.publicMethodA('b');
expect(myWonderfulModule.publicMethodB).toHaveBeenCalled();
});
私が正しく理解していれば、publicMethodBのコピーを変更することはできませんクロージャ内があります:私はそうのような小さなテストを書くかもしれません。私はその後myWonderfulModule.publicMethodBを変更しても:myWonderfulModule.publicMethodA
を呼び出す
myWonderfulModule.publicMethodB = undefined;
はまだB.
の元のバージョンを実行します上記の例では、もちろん単純化であるが、私はどこにそれを考えることができますシナリオがたくさんありますメソッドを介してテスト条件付きパスを単体テストすると便利です。
これは明らかなモジュールパターンの制限ですか、単なる単体テストの誤用ですか?私にはどのような回避策がありますか?私はRequireJSのようなものに移動することを検討しているか、非モジュラーコードに戻すことを検討しています。
アドバイスありがとうございます。