angularjs - Promise not resolving in angular jasmine unit test -



angularjs - Promise not resolving in angular jasmine unit test -

my service looks this:

app.service('foo',function($q){ this.fn3 = function(){ var deferred = $q.defer(); homecoming deferred.promise; } });

my spec document below:

describe('testing: mainctrl', function() { var $scope = null; var ctrl = null; var mockfoo; var deferred; var $q; var info = {name: 'test'}; var createcontroller; beforeeach(module('plunker')); beforeeach(inject(function($rootscope, $controller,_$q_) { $scope = $rootscope.$new(); $q = _$q_; mockfoo = { fn3: function(){ } }; deferred = $q.defer(); spyon(mockfoo,'fn3').and.returnvalue(deferred.promise); createcontroller = function() { homecoming $controller('mainctrl', { $scope: $scope, foo: mockfoo }); }; })); it('should phone call fn3()', function(){ ctrl = createcontroller(); deferred.resolve(data); $scope.$digest(); expect(mockfoo.fn3).tohavebeencalled(); expect($scope.temp).tobe(data); }); });

i not quiet sure why spec failing. resolving promise , calling $digest means $scope.temp should value.

i have plnkr here: http://plnkr.co/edit/uzwqtt

any suggestions ?

you have catch resolved value accessing value in then function:

var resolvedvalue; $scope.temp.then(function(value) { resolvedvalue = value; }); expect(resolvedvalue).toequal(data);

see plunker.

angularjs jasmine

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -