$ controller不是Angular / Jasmine中的函数

时间:2015-05-08 12:46:47

标签: javascript angularjs unit-testing jasmine karma-jasmine

我正在测试Angular我的头发。我试图实例化一个控制器和jasmine抱怨$ controller不是一个函数。以下是我的测试。

--enable-64it --disable-32bit --enable-shared CXXFLAGS=-m64 -DNDEBUG LDFLAGS=-m64

我在顶级范围定义了$ controller,我已经注入了控制器服务并将其分配给全局变量。它怎么不是一个功能?

2 个答案:

答案 0 :(得分:0)

试试这个:

describe "MyCtrl test", () ->
  beforeEach module('ngRoute')
  beforeEach module('myControllers')

  myController = undefined
  $scope = undefined
  $routeParams = undefined
  mySvc = undefined
  createCtrl = undefined

  beforeEach inject($controller, $rootScope, _$routeParams_,_mySvc_) ->
    myController = $controller
    $scope = $rootScope.$new()
    mySvc = _mySvc_
    createrCtrl = ->
      myController('MyCtrl', {$scope:$scope,$routeParams:$routeParams,mySvc:mySvc})

  it "should be defined", () ->
      createCtrl()
      expect(MyCtrl).toBeDefined()

答案 1 :(得分:0)

在我公司获得WebStorm许可证的过程中,我过去几天一直在使用SublimeText。从头开始重写代码似乎解决了这个问题。我尝试将标签转换为空格 - 这解决了我遇到的一个问题,但它没有修复$ controller错误,但从头开始做了。