Sto cercando di utilizzare Jasmine per scrivere alcune specifiche BDD per richieste jQuery AJAX di base. Attualmente sto usando Jasmine in modalità standalone (cioè attraverso SpecRunner.html
). Ho configurato SpecRunner per caricare jquery e altri file .js. Qualche idea sul perché quanto segue non funziona? has_returned non diventa vero, anche se il "yuppi!" l'avviso si presenta bene.
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);
});
});
Come si verifica che la richiamata sia stata chiamata? Eventuali riferimenti a blog / materiale relativi al test di jQuery asincrono con Jasmine saranno molto apprezzati.