ジャスミンには、何ミリ秒も待つのではなく、関数が戻るまで待つフックがあります。 This pageには良い例があります。ここでは、Ajaxコールバックをテストする具体的な方法を示すためにここにコピーしました。あなたの関数にコールバックとしてスパイを追加し、そのコールバックが実行されるのを待つだけです。
it("should make a real AJAX request", function() {
var callback = jasmine.createSpy();
makeAjaxCall(callback);
waitsFor(function() {
return callback.callCount > 0;
}, "The Ajax call timed out.", 5000);
runs(function() {
expect(callback).toHaveBeenCalled();
});
});
EDIT:
、あなたのアプリケーションが特定のコールバックを作ることをテストしているので、あなただけの代わりに私がやったように、新しいものを作るのスパイとそのコールバックを置き換えることができます。 (私はこれの構文うまくいけば、良いスタートをテストしていない)
it("should make an ajax callback with jasmine 2.0", function(done)) {
// this is the object you are testing - assume it has the ajax method you want to call and the method that gets called when the ajax method is finished
var myObject
spyOn(myObject, "callback").andCallFake(function() {
done();
});
myObject.makeAjaxCall();
}
私にはたくさんの質問がありますが、始めてください。なぜあなたはテストしてAjaxを呼びたくないのですか? – Dalorzo
カルマかSpecRunner.htmlを使っていますか? – Dalorzo
Ajaxコールの作成には何が使用されていますか? – Dalorzo