我正在尝试使用 Jasmine 为基本的 jQueryAJAX 请求编写一些 BDD 规范。我目前在独立模式下使用 Jasmine (即通过 SpecRunner.html
)。我已经将 SpecRunner 配置为加载 jquery 和 other。JS 文件。知道为什么下面的方法行不通吗?已经返回并不成为真实的,甚至认为“ yuppi!”警报显示正常。
describe("A jQuery ajax request should be able to fetch...", function() {
it("an XML file from the filesystem", function() {
$.ajax_get_xml_request = { has_returned : false };
// initiating the AJAX request
$.ajax({ type: "GET", url: "addressbook_files/addressbookxml.xml", dataType: "xml",
success: function(xml) { alert("yuppi!"); $.ajax_get_xml_request.has_returned = true; } });
// waiting for has_returned to become true (timeout: 3s)
waitsFor(function() { $.ajax_get_xml_request.has_returned; }, "the JQuery AJAX GET to return", 3000);
// TODO: other tests might check size of XML file, whether it is valid XML
expect($.ajax_get_xml_request.has_returned).toEqual(true);
});
});
如何测试回调是否已被调用?如果您能提供有关使用 Jasmine 测试异步 jQuery 的博客/资料,我将不胜感激。