用业力单位测试angularjs

时间:2014-10-13 12:45:28

标签: angularjs karma-runner

我已经设置了业力来运行角度测试,但是当我尝试获得一个工厂时,我已经使用angular.injector()定义了.get(“EventProcessor”)它表示找不到它。

我的工厂看起来像这样:

console.log "Loaded"

TTApp.factory "EventProcessor", ($rootScope, $injector) ->
  console.log "Inside" # this is never seen in the log...
  class EventProcessor
    ...

我的root应用程序如下所示:

window.TTApp = angular.module("TTApp", [
  "ui.layout",
  "ui.bootstrap",
  "templates"
])

TTApp.run ->
  ...

我的测试看起来像这样:

describe "EventProcessor", ->
  beforeEach(module("TTApp"))

  it "is there", ->   
    subject = angular.injector().get("EventProcessor")
    expect(subject).not.toBeNull()

确切错误是:

Error: [$injector:unpr] Unknown provider: EventProcessorProvider <- EventProcessor

任何人都对我做错了什么有任何见解?

1 个答案:

答案 0 :(得分:0)

我发现我需要使用

angular.injector(["ngMock", "ng", "TTApp"]).get so it knows where to look. 

感谢谷歌..