在Jasmine中创建承诺的单元测试服务

时间:2015-07-28 08:39:11

标签: angularjs unit-testing karma-jasmine

我有一个服务返回承诺需要单元测试。

var urlQuestions = "user/securityQuestions";
   AccountService.getServerDataForUrl(urlQuestions)
   .then(function (data) {
         $scope.securityQuestions = data;
   }, function (error) {
});

这是我的单元测试:

it('submit should call the AccountService.getServerDataForUrl', function () {
        var urlQuestions = "user/securityQuestions"; 
        var error;
        var deferredSuccess = $q.defer();
        spyOn(AccountService, 'getServerDataForUrl').and.returnValue(deferredSuccess.promise);

        expect(AccountService.getServerDataForUrl).toHaveBeenCalledWith(urlQuestions);

        deferredSuccess.resolve(); 
        $scope.$digest();

        expect(error).toBe(null);
        expect($scope.securityQuestions).toEqual(data);
});

但是当我运行它时,会出现一些错误:

  

预期的间谍getServerDataForUrl已被调用[   '用户/ securityQuestions' ]

但从未打过电话。

  

错误:意外请求:GET user / securityQuestions不再需要预期

0 个答案:

没有答案