在为具有依赖项的控制器运行jasmine测试时获取错误

时间:2017-07-04 17:08:27

标签: angularjs karma-jasmine

我有一个控制器,其依赖性类似于以下代码

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不是一个函数。这是与依赖注入相关的东西,但我无法弄清楚确切的原因

0 个答案:

没有答案