2014-05-04 42 views
0

如何在一個角控制器測試一個錯誤回調如下所示:測試錯誤回調茉莉

controller.js

Note 
    .query() 
    .$promise 
    .then(
     function(notes) { 
     // success 
     }, 
     function() { 
     // error 
     } 
    ); 

在我的天賦,我可以把一些隨機的在調用queryDeferred.resolve()的對象並測試成功回調。但是,我如何測試錯誤情況?

spec.js

//= require spec_helper 

describe('NoteListCtrl', function() { 
    // edited for brevity... 

    beforeEach(inject(function($controller) { 

    NoteMock = { 
     query: function() { 
     queryDeferred = $q.defer(); 
     return { $promise: queryDeferred.promise }; 
     } 
    } 

    spyOn(NoteMock, 'query').andCallThrough(); 

    })); 

    describe('Note.getNotes', function() { 

    describe ('Note.query', function() { 

     beforeEach(function() { 
     $scope.getNotes(); 
     queryDeferred.resolve(?????); // What goes here? 
     $rootScope.$apply(); 
     }); 

    }); 


    }); 

}); 

回答

1

使用reject

queryDeferred.reject(someData);