我的应用程序中有以下依赖项:
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
,这取决于我想在测试前存根的NetworkingValues
。
这样做的正确方法是什么?
答案 0 :(得分:1)
Have you tried something along these lines?
var mockedValues;
beforeEach(module(function($provide) {
$provide.value('NetworkingValues',mockedValues);
}));
beforeEach(inject(function(_NetworkingValues_) {
mockedValues = {....};
}));
$ provide将提供mockedValues而不是实际的NetworkingValues。
答案 1 :(得分:0)
所以我的最终解决方案是提供常量并将其与module
函数一起注入:
beforeEach module "MyApplication.NetworkingModule", ($provide) ->
$provide.constant 'NetworkingValues', endpointGet: 'my-endpoint/:id'