AngularJS:如何在模块配置期间使用角度服务?

时间:2013-03-07 22:55:22

标签: angularjs jasmine

请参阅此plunkr以获取实例:http://plnkr.co/edit/djQPW7g4HIuxDIm4K8RC

在下面的代码中,行var promise = serviceThatReturnsPromise();在模块配置期间运行,但我想模拟服务返回的承诺。

理想情况下,我会使用$q服务来创建模拟承诺,但我不能这样做因为serviceThatReturnsPromise()在模块配置期间执行,然后才能访问{{1 }}。解决鸡肉和鸡蛋问题的最佳方法是什么?

$q

1 个答案:

答案 0 :(得分:2)

我不确定我是否更喜欢这个解决方案,但现在是:

http://plnkr.co/edit/uBwsJxJRjS1qqsKIx5j7?p=preview

您需要确保在之后设置所有内容时不实例化“serviceUnderTest”。因此,我将第二个beforeEach分成两个单独的部分:第一个实例化并使用$q,第二个实例化并使用serviceUnderTest

我还必须包含$rootScope,因为Angular的承诺旨在使用$apply()方法。

希望有所帮助。