我有一个控制器,其依赖性类似于以下代码
var app = angular.module("angularapp", ['servicemodule']);
app.controller("angCtrl",['$scope','Service1','Service2','Service3',
function($scope,'Service1','Service2','Service3)
{
//controller does something
}
控制器的茉莉花测试类似于
'describe('angCtrl', function() {
beforeEach(module('angularapp'));
var $controller,mockService1,mockService2,mockService3;
beforeEach(inject(function(_$controller_,_Service1_,_Service2_,_Service3_){
// The injector unwraps the underscores (_) from around the parameter names when matching
$controller = _$controller_;
mockService1=_Service1_;
mockService2=_Service2_;
mockhService3=_Service3_;
spyOn(mockService1, "getJsonData").and.returnValue("somevalue");
spyOn(mockService2, "getJsonData").and.returnValue("somevalue");
spyOn(mockService3, "getJsonData").and.returnValue("somevalue");
}));
it('header value should be 10', function() {
var $scope = {};
var controller = $controller('angCtrl', {
$scope: $scope
});
expect($scope.header.length).toEqual(10);
})
});'
当我运行Jasmine测试时,我得到一个注入器错误,然后是TypeError:$ controller不是一个函数。这是与依赖注入相关的东西,但我无法弄清楚确切的原因