How to properly unit test jQuery’s .ajax() promises using Jasmine and/or Sinon?
It is not that complex actually. It suffices to return a promise and resolve it according to your case. For example: spyOn($, ‘ajax’).andCallFake(function (req) { var d = $.Deferred(); d.resolve(data_you_expect); return d.promise(); }); for a success, or spyOn($, ‘ajax’).andCallFake(function (req) { var d = $.Deferred(); d.reject(fail_result); return d.promise(); }); for a failure. For Jasmine 2.0 … Read more