lundi 12 septembre 2016

Unit testing angular.js service (node.js server) in controller

I'm new to the unit testing in the client side. My application uses the express.js, angularjs-ui-router and node.js. Currently i start writing the unit test cases for the application. I'm using Karma, Mocha, Chai, Sinon for unit testing.

My router config look like below:

$stateProvider
        .state('drive', {
            url: '/drive',
            templateUrl: 'drive.jade',
            controller: 'driveCtrl',
        });

Controller:

 angular.module('mApp').controller('driveCtrl', ['$scope', 'driveService',
 function($scope, driveService) {
    var driveInfo = driveService.get({}, function() {});
    driveInfo.$promise.then(function(rs) {
            var drivers = [];
            //Logical operation
            $scope.drivers = drivers;
    });
}]);

Factory Resource:

mApp.factory('driveService', ['$resource', function($resource) {
      return $resource('/drive/id/:id/', {id:'@id'});
  }]);

The driveService is a factory which insides uses a angular.js $resources. I tried variety of options but nothings seems to be working (using the $httpbackend, $q). Can you help me out to write the way to test the controller by mocking the driveService.

Aucun commentaire:

Enregistrer un commentaire