libにJavaScriptのユニットテスト、qunitを見てみヘルパーは匿名関数であるプラグイン、内側にスコープされ、そして、あなたはその中で宣言された変数にアクセスすることはできません。
テストする場合は、機能の前にvar
キーワードをドロップします。これは、関数をグローバル(ウィンドウオブジェクトにアタッチする)として宣言し、ウィンドウスコープから表示できるようにします(someHelperFunction
またはwindow.someHelperFunction
を呼び出して)。
そうでは、テストのために:
(function($) {
someHelperFunction = function(s, d) {
return s*d;
}
someOtherHelperFunction = function(s) {
return s*2;
}
// here goes the normal plugin code
})(jQuery);
テストが終わった後、再びvar
キーワードを追加します。 APIを構築する -
アップデートは
私はより良いアプローチは、あなたのテスト可能な機能は、オブジェクトのグループになるだろうと思います。その後、同じ原理で、あなたは、グローバルスコープのかというAPIが見えるようにできます。
(function($, global) {
someHelperFunction = function(s, d) {
return s*d;
}
someOtherHelperFunction = function(s) {
return s*2;
}
var api = {
someHelperFunction: someHelperFunction,
someOtherHelperFunction: someOtherHelperFunction
};
// decide whether you want to expose your api or not
if(makeGlobal) {
global.api = api;
}
})(jQuery, this);
外部からメソッドにアクセスすることはできないため、不可能です。 –