如何spyOn服务调用错误处理?

时间:2015-08-12 12:53:57

标签: angularjs unit-testing jasmine karma-jasmine

我想测试我的控制器进行这样的服务调用:

myService.get().success(function (data){
   $scope.myData = data;
})

我可以毫无问题地测试这个:

it('should get the accounts', function() {

    spyOn(myService, 'get').and.callFake(function () {
        return {
           success: function(callback) {
              callback(myData);
           }
        }
    });

    expect(myService.get).toHaveBeenCalled();
    expect($scope.myData).toEqual(myData);
})

然而;如果我想处理服务呼叫错误:

myService.get().success(function (data){
      $scope.myData = data;
}).catch(function() {
   $scope.error = true;
});

我的测试失败了:无法读取未定义的属性'catch'

如何使用spyOn测试成功和错误情况?

提前致谢!

0 个答案:

没有答案