Javascript 我模仿httpBackend正确吗?

Javascript 我模仿httpBackend正确吗?,javascript,angularjs,httpbackend,Javascript,Angularjs,Httpbackend,单元测试: describe "Lunch controller", -> beforeEach module('Lunch') beforeEach inject(($httpBackend) -> $httpBackend.expectGET('/lunchers') .respond(200, ["some content", "some other content"]) ) describe "LunchCtrl", ->

单元测试:

describe "Lunch controller", ->
  beforeEach module('Lunch')
  beforeEach inject(($httpBackend) ->
    $httpBackend.expectGET('/lunchers')
      .respond(200, ["some content", "some other content"])
  )

  describe "LunchCtrl", ->
    it "should set images to a populated array", inject(($controller, $httpBackend) ->
      scope = {}
      ctrl = $controller("LunchPoolController",
        $scope: scope
      )
      expect(scope.lunchers.length).toBe 2
    )
正在投掷

 at /Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.coffee:13
INFO [watcher]: Changed file "/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.coffee".
Chrome 32.0.1700 (Mac OS X 10.9.1) Lunch controller LunchCtrl should set images to a populated array FAILED
    TypeError: Cannot read property 'length' of undefined
        at null.<anonymous> (/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:13:35)
        at Object.invoke (http://localhost:3000/assets/application.js:7886:19)
        at workFn (http://localhost:3000/assets/application.js:14982:22)
    Error: Declaration Location
        at window.inject.angular.mock.inject (http://localhost:3000/assets/application.js:14970:27)
        at null.<anonymous> (/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:7:57)
        at null.<anonymous> (/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:6:10)
        at /Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:1:1
Chrome 32.0.1700 (Mac OS X 10.9.1): Executed 2 of 2 (1 FAILED) (2.766 secs / 0.201 secs)
at/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.咖啡:13
信息[观察者]:更改文件“/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.coffee”。
Chrome 32.0.1700(Mac OS X 10.9.1)午餐控制器应将映像设置为填充的阵列失败
TypeError:无法读取未定义的属性“length”
在空。(/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:13:35)
在Object.invoke(http://localhost:3000/assets/application.js:7886:19)
在工作fn(http://localhost:3000/assets/application.js:14982:22)
错误:声明位置
在window.inject.angular.mock.inject(http://localhost:3000/assets/application.js:14970:27)
在空。(/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:7:57)
在空。(/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:6:10)
at/Users/jd/Dropbox/apps/lookingtolunch/spec/javascripts/controller_specs.js.js:1:1
Chrome 32.0.1700(Mac OS X 10.9.1):执行2/2(1失败)(2.766秒/0.201秒)

假设
午餐池控制器
正在启动HTTP请求,则需要使用
$httpBackend.flush()
确保所有请求都已通过。(有关更多信息,请参阅小节)。

实际上,该控制器中注入了一个服务,所以问题可能是在这些规范中我没有将服务注入控制器?