Estou tentando usar Jasmine para escrever algumas especificações de BDD para solicitações básicas de jQuery AJAX. No momento, estou usando Jasmine no modo autônomo (ou seja, através SpecRunner.html
). Eu configurei SpecRunner para carregar jquery e outros arquivos .js. Alguma ideia de por que o seguinte não funciona? has_returned não se torna verdade, mesmo que o "yuppi!" alerta aparece bem.
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);
});
});
Como faço para testar se o retorno de chamada foi chamado? Quaisquer sugestões para blogs / materiais relacionados ao teste de jQuery assíncrono com Jasmine serão muito apreciadas.