Saya mencoba menggunakan Jasmine untuk menulis beberapa spesifikasi BDD untuk permintaan AJAX jQuery dasar. Saat ini saya menggunakan Jasmine dalam mode mandiri (yaitu melalui SpecRunner.html
). Saya telah mengkonfigurasi SpecRunner untuk memuat jquery dan file .js lainnya. Ada ide mengapa hal berikut ini tidak berhasil? has_returned tidak menjadi kenyataan, bahkan mengira "yuppi!" peringatan muncul dengan baik.
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);
});
});
Bagaimana cara menguji apakah callback telah dipanggil? Petunjuk apa pun ke blog / materi yang terkait dengan pengujian async jQuery dengan Jasmine akan sangat dihargai.