模拟AngularJS控制器以TypeError结束

时间:2014-06-20 22:27:26

标签: angularjs visual-studio mocking resharper jasmine

我试图在Visual Studio中运行Angular的PhoneCat教程作为网页项目。我已经完成了第2步(https://docs.angularjs.org/tutorial/step_02)并且网页运行正常。但是,单元测试在beforeEach行上失败,并显示错误:

  

TypeError:无法获取属性' $ injector'未定义或空引用

     
    

at workFn(... scripts \ angular-mocks.js:2013:7)

  

我有一个没有任何嘲弄的测试,所以我知道所有其他组件一起玩得很好。基本上,Visual Studio 2013,ReSharper 8和Jasmine 2似乎都运行良好。在单元测试之外,页面本身工作正常。它出现并显示控制器中定义的三个电话。

我在javascript中还不够强大,无法深入挖掘并弄明白,所以我来这里寻求帮助。您可以在https://github.com/qanwi1970/PhoneCat-VS/tree/develop上查看我的github上的所有代码。如果我的小组继续使用Angular,那么能够在Visual Studio中编写有意义的单元测试非常重要。

感谢您的帮助和提示。

更新:我发现js文件顶部的///注释告诉Visual Studio所需的javascript文件(对于Intellisense等),但它没有告诉测试运行者。我需要离开这一天,但那是我明天要工作的角度。我怎么告诉ReSharper / Chutzpah controllerSpec.js需要controller.js?这个问题可能已经回答了,但我今天没时间了。

1 个答案:

答案 0 :(得分:1)

确保您使用的是ReSharper 8.2.1。 Jasmine 2.0支持有一些修复,可能会导致类似的错误。