jasmineを使用して、基本的なjQuery AJAXリクエストのBDD仕様を記述しようとしています。私は現在スタンドアロンモードでジャスミンを使用しています(つまりSpecRunner.html
まで)。 jqueryやその他の.jsファイルを読み込むようにSpecRunnerを設定しました。次の理由がうまくいかない理由はありますか? has_returnedは "yuppi!"と思っても真実にならないアラートが正常に表示されます。JasmineでjQuery AJAXイベントを確認するにはどうすればよいですか?
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をテストすることに関連するブログ/マテリアルへのあらゆる指針は、非常に高く評価されます。
ありがとう@jasminebdd、jasmine-ajaxプロジェクトは、私のjsコードのテストに行く方法のように見えます。しかし、サーバーへの実際のリクエストでテストしたい場合はどうでしょうか?接続性/統合性テストのために? – mnacos
@mnacos jasmine-ajaxは、単体テストに役立ちます。この場合、特にサーバーへの呼び出しを避けたいとします。統合テストを行っている場合、これはおそらくあなたが望むものではなく、別のテスト戦略として設計する必要があります。 –