describe('how to test with promises', function () { var deferred, $rootScope; beforeEach(function () { inject(function ($q, _$rootScope_) { $rootScope = _$rootScope_; deferred = $q.defer(); }); }); it('does a thing one way', function () { deferred.promise.then(function (value) { expect(value).toBe(4); }); deferred.resolve(10); $rootScope.$digest(); }); it('does a thing another way', function () { var handler = jasmine.createSpy('success'); deferred.promise.then(handler); deferred.resolve(10); $rootScope.$digest(); expect(handler).toHaveBeenCalledWith(4); }); });