2014-12-02 7 views
11

arbeiten Haben Sie echte Schwierigkeiten, ein einfaches Beispiel zu arbeiten. Ich bin mit diesem Beispiel aus 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); 
    }); 
}); 

Aus irgendeinem Grund $.ajax.mostRecentCall nicht definiert ist.

Verwendung von Jasmin 2.0.2 und Jasmin jquery 2.0.5.

Fiddle hier: http://jsfiddle.net/sidouglas/85b35993/

Antwort

18

Dies ist die alte 1.x Jasmin Syntax:

$.ajax.mostRecentCall.args 

Die Syntax für Jasmine 2:

$.ajax.calls.mostRecent().args 

So sollte Ihre Behauptung sein:

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

Vielen Dank für sich die Zeit nehmen, diese Frage zu beantworten. – Simon