我的应用程序中有以下依赖项:
angular.module 'MyApplication.NetworkingModule', ['ngResource']
.value 'NetworkingValues'
angular.module 'MyApplication.MyModule', []
.factory 'MySpecificResource', ['NetworkingValues', ...]
.factory 'MyService', ['MySpecificResource', ...]
因此 MySpecificResource
取决于 NetworkingValues
。
问题是我想在测试的资源中使用它们之前模拟其中的一些值。
这样做:
beforeEach module 'MyApplication.NetworkingModule'
beforeEach module 'MyApplication.MyModule'
导致 factory
被立即调用,我没有机会替换一些 NetworkingValues
。
beforeEach inject (@MyService, @NetworkingValues) ->
MyService
依赖于 MySpecificResource
,它依赖于我想在测试前 stub 的 NetworkingValues
。
正确的做法是什么?
最佳答案
Have you tried something along these lines?
var mockedValues;
beforeEach(module(function($provide) {
$provide.value('NetworkingValues',mockedValues);
}));
beforeEach(inject(function(_NetworkingValues_) {
mockedValues = {....};
}));
$provide 将提供您的模拟值而不是实际的网络值。
关于angularjs - 如何在注入(inject)前模拟 Angular 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28968906/