$(document).ready(function())
内に複数の関数と多くのコードがあります。 jasmineを使用してready関数内の関数とready()
内のコードをテストしていますが、describe内のテストケースを実行すると、ready
内のコードにアクセスできません関数。
$(document).ready(function () {
function testMe(){
testVar = true;
}
});
ジャスミンテストスイート
describe("test suite", function(){
beforeEach(function () {
testme = false
});
it("Test Alert Box Message For Change Modal", function() {
expect(testme).toEqual(true);
});
});
上記のアプローチのために取られる必要があるアプローチを親切に提案します。
コードでは、無名関数をdomreadyで呼び出します。この関数への参照があれば、それを呼び出すことができます。
var onReady = function(){
testVar = true;
}
$(document).ready(onReady);
そしてあなたのテストで
it("Test Alert Box Message For Change Modal", function() {
var testVar = false;
onReady() ;
expect(testVar).toEqual(true);
});
あなたのコードはテスト可能になりました:)名前空間とモジュールはそれをさらに良くするために推奨されます。
Ready関数の内部には、すべてのものとは別のスコープでグローバルにカプセル化されています。
テストケースを同じスコープに置いて機能させます。
取るべき他のアプローチは、クロージャで、匿名関数を(readyイベントハンドラで)ラップし、変数に入れて、それをreadyに渡すことです。そして、その変数を使用して、テストスイートに渡します。オブジェクト指向のJavaScriptを知らない人に説明して実装するのは複雑になる場合があります。
var testMe;
$(document).ready(function () {
testMe=function testMe(){
testVar = true;
}
});
testMeが定義されました。それは閉鎖を作成しました。それらの技法の名前を忘れてしまったので、巻き上げを作成したと思います。
とにかく..読むのに最適な本は、効果的なJavascriptであり、優れたjavascript技術に慣れ親しんでいます。通常のプログラミング言語とは異なります。