Próbuję użyć Jasmine do napisania niektórych specyfikacji BDD dla podstawowych żądań AJAX jQuery. Obecnie używam Jasmine w trybie autonomicznym (tj. Do SpecRunner.html
). Skonfigurowałem SpecRunner, aby załadować pliki jquery i inne pliki .js. Wszelkich pomysłów, dlaczego poniższe nie działa? ma_wstecz nie staje się prawdą, nawet pomyślał "yuppi!" alarm pokazuje się dobrze.Jak mogę sprawdzić zdarzenia jQuery AJAX z Jasmine?
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);
});
});
Jak sprawdzić, czy wywołanie zwrotne zostało wywołane? Wszelkie wskazówki do blogów/materiałów związanych z testowaniem async jQuery z Jasmine będą bardzo mile widziane.
Dzięki @jasminebdd, projekt jaśmin-ajax wygląda jak sposób testowania mojego kodu js. Ale co jeśli chciałbym przetestować rzeczywiste żądania na serwer, np. do testów łączności/integracji? – mnacos
@nnacos jaśmin-ajax jest głównie przydatny do testowania jednostkowego, w którym to przypadku chcesz uniknąć połączenia z serwerem. Jeśli przeprowadzasz testy integracyjne, prawdopodobnie nie jest to tym, czego potrzebujesz i powinno się je zaprojektować jako osobną strategię testowania. –