クロージャー内に存在するJavaScript関数を単体テストすることは可能ですか?たとえば、次の場合:
(function() {
var a = function() {
//do something
}
window.b = function() {
// do something else
}
})();
関数を公開せずに単体テストすることは可能ですか? そうでない場合、テストモードでのみ公開する良い方法はありますか?
クロージャー内に存在するJavaScript関数を単体テストすることは可能ですか?たとえば、次の場合:
(function() {
var a = function() {
//do something
}
window.b = function() {
// do something else
}
})();
関数を公開せずに単体テストすることは可能ですか? そうでない場合、テストモードでのみ公開する良い方法はありますか?
匿名関数は、テストモードでない場合は未定義のパラメーターを取り、このパラメーターがオブジェクトになると言うことができます。直接a
公開せずにオブジェクトを 'sで埋めることができます。a
ちょうど私の.02ドル
ここでの最大の質問は、なぜそれを隠したいのかということです。テストしたいこの関数aがあるという事実は、テストする必要がある独自の責任があることを示しています。それを引き出してテスト下に置くことは、それを暴露する最小のリスクと比較して、はるかに多くの価値を獲得します。本当に非表示にしておきたい場合は、Manuxの応答に似たものを提案します。この場合、オブジェクトを作成して、オブジェクトを作成しますが、オブジェクトは直接公開しません。次に、そのオブジェクトをテストすることで、の動作をテストできます。