无法获得$ .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);