2

コントローラーに機能があります:

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 がテストでカバーされていないカルマ カバレッジが表示されます。この関数を正しくモックするにはどうすればよいですか? ありがとう!

4

0 に答える 0