2014-12-02 3 views
11

간단한 예제가 작동하는 데 어려움이 있습니다. 나는 $.ajax.mostRecentCall이 정의되지, 어떤 이유로 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); 
    }); 
}); 

에서 가져온이 예제를 사용하고 있습니다.

쟈스민 2.0.2 및 jasmine jquery 2.0.5를 사용하십시오. 여기

바이올린 : http://jsfiddle.net/sidouglas/85b35993/

답변

18

이 이전 1.x에서 재스민 구문 : 재스민 2의 구문은

$.ajax.mostRecentCall.args 

입니다

:

$.ajax.calls.mostRecent().args 

그래서 당신의 주장은 다음과 같아야합니다

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

고맙습니다. 이 질문에 대답 할 시간을내어 – Simon