コントローラーに機能があります:
function get(request) {
return UserService.get({
id: request.id,
transformResponse: function(data) {
return angular.fromJson(data);
}
});
};
そして、次のようにテストします。
var $scope;
var controller;
var UserService;
beforeEach(function() {
angular.mock.module(function($provide) {
UserService = jasmine.createSpyObj('UserService', ['get']);
$provide.value('UserService', UserService);
});
});
beforeEach(inject(function($rootScope, $controller, UserService) {
$scope = $rootScope.$new();
controller = $controller('...' {
$scope: $scope,
UserService: UserService
});
$scope.$digest();
}));
it('should call user service get function when getting user', function() {
var request = { id: 5 };
controller.get(request);
expect(UserService.get).toHaveBeenCalledWith(request);
});
テストはパスしましたが、関数 transformResponse がテストでカバーされていないカルマ カバレッジが表示されます。この関数を正しくモックするにはどうすればよいですか? ありがとう!