将服务注入角度控制器单元测试

时间:2015-03-29 10:57:10

标签: angularjs unit-testing

我正在尝试将服务注入我的控制器单元测试中。我不打算模拟服务,但只是包含它,以便我可以访问它的所有方法。这可能吗?

'use strict';

  describe('Offers : controller', function(){

    beforeEach(module('client'));

      var $scope,
          controller,
          $rootScope,
          genericService;


      beforeEach(inject(function($injector, $controller) {

        $rootScope = $injector.get('$rootScope');
        controller = $controller('OffersCtrl', { $scope: $scope });
        genericService = $injector.get('genericService');
        $scope = $rootScope.$new();

   }));

   it('should have a genericService', function () {
     expect(genericService.method).toBeDefined();
   });


});

1 个答案:

答案 0 :(得分:2)

只需按照与角度服务相同的方式注入您自己的服务:

var genericService;

beforeEach(inject(function(_genericService_) {
  genericService = _genericService_;
});

请注意,您可以在参数名称周围使用下划线以避免命名冲突。在解析要注入的服务时,Angular将从参数名称中删除它们。