我正在使用 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 代码库;我需要帮助调试测试本身。
你看到有什么不正常的地方吗?