angular.module('myApp.Services', []);
angular.module('myApp.Controllers', []);
angular.module('myApp', ['myApp.Controllers', 'myApp.Services'])
angular.module('myApp.Services').service('fooSrvc', function(){});
angular.module('myApp.Controllers')
.controller('FooCtrl', ['fooSrvc', function(fooSrvc){}]);
myApp
模块是应用程序的主要模块,它依赖于myApp.Services
和myApp.Controllers
模块。
myApp.Controllers
没有直接依赖 myApp.Services
模块,但来自fooSrvc
模块的myApp.Services
可用于注入来自FooCtrl
模块的strong> myApp.Controllers
。
好吧,不管怎样,这只是有效的,我可以理所当然地接受它,虽然我不知道如何。
但是把它调到FooCtrl
的单元测试水平。我需要模仿fooSrvc
。好吧,我可以嘲笑它:
beforeEach(function() {
module('myApp.Controllers');
module(function($provide) {
$provide.service('fooSrvc', function() {
// Mocking fooSrvc
});
});
});
我是否应该模拟任何模块,并且由于模块myApp.Controllers
和myApp.Services
之间的魔法依赖性,这个模块组织是不是很糟糕?