无法获得$ .ajax.mostRecentCall与jasmine 2.0.2一起使用

让一个简单的例子工作真的很麻烦。 我使用的这个例子来自https://gist.github.com/Madhuka/7854709

describe("Test for spies", function() { function sendRequest(callbacks, configuration) { $.ajax({ url: configuration.url, dataType: "json", success: function(data) { callbacks.checkForInformation(data); }, error: function(data) { callbacks.displayErrorMessage(); }, timeout: configuration.remainingCallTime }); } it("should make an Ajax request to the correct URL", function() { var configuration = { url : "http://www.google.com", remainingCallTime : 30000 }; spyOn($, "ajax"); sendRequest(undefined, configuration); expect($.ajax.mostRecentCall.args[0]["url"]).toEqual(configuration.url); }); }); 

无论出于何种原因, $.ajax.mostRecentCall未定义。

使用jasmine 2.0.2和jasmine jquery 2.0.5。

在这里小提琴: http : //jsfiddle.net/sidouglas/85b35993/

这是旧的1.x Jasmine语法:

 $.ajax.mostRecentCall.args 

Jasmine 2的语法是:

 $.ajax.calls.mostRecent().args 

所以你的断言应该是:

 expect($.ajax.calls.mostRecent().args[0]["url"]).toEqual(configuration.url);