Jasmine jQueryを使用してカスタムjavascriptモジュールのAJAXリクエストをテストしており、最終的にはDOMの後処理操作ですが、Jasmineテストでは新しく操作された要素が見つかりません。
ジャスミンテストは次のとおりです...
describe("#init", function() {
it("should return a JSON object from the server", function() {
loadFixtures("top_content_container.html");
// This method will add 'div.search_result' to the 'div.top_content' container
SC.init();
expect($('div.top_content')).toContain('div.top_content_container');
expect($('div.top_content')).toContain('div.search_results');
// THIS TEST SHOULD PASS, BUT DOES NOT DETECT THE DOM UPDATES AND DOES NOT
expect($('div.top_content div.search_result').length == 10).toBeTruthy();
});
});
メソッド内で、SC.init()
要素をDOMに追加してから、AJAXリクエストを実行します。このリクエストは、データを返し、それをDOMに挿入します。これらの新しく作成された要素は「div.search_result」と一致します。
すべてのAJAXリクエストが正しく実行されており、SCライブラリがすべての要素をDOMに適切に挿入していることを確認しました。機能の観点から、ライブラリは機能しています。問題は、Jasmineテストを取得してDOMの更新を確認する方法です。繰り返しになりますが、SCコードベースのデバッグを支援する必要はありません。テスト自体のデバッグについてサポートが必要です。
あなたは強打から何かを見ますか?