我正在尝试将服务注入我的控制器单元测试中。我不打算模拟服务,但只是包含它,以便我可以访问它的所有方法。这可能吗?
'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();
});
});
答案 0 :(得分:2)
只需按照与角度服务相同的方式注入您自己的服务:
var genericService;
beforeEach(inject(function(_genericService_) {
genericService = _genericService_;
});
请注意,您可以在参数名称周围使用下划线以避免命名冲突。在解析要注入的服务时,Angular将从参数名称中删除它们。