-我见过很多关于测试和 DI 的问题,但到目前为止没有一个对我有帮助。
我有一个模块:
angular
.module('app.users', ['app.auth', 'app.foo']);
和一个我想测试的功能的简单服务:
(function(){
angular
.module('app.users')
.factory('UsersModel', UsersModel);
UsersModel.$inject = ["AuthService", "FooService"]
function UsersModel(AuthService, FooService){
function someFunction(){
// do stuff...
}
}
})();
和一个测试文件:
describe("Users", function(){
beforeEach(function(){
module('app.users');
angular.mock.module('app.auth'); // includes AuthService
angular.mock.module('app.foo'); // include FooService
})
describe("Username", function(){
it("should do stuff", inject(function(UsersModel){
// no code here
}));
});
});
现在,服务FooService
本身依赖于BarService
. 当我在业力中运行它时,我收到一个错误:
Unknown provider: BarServiceProvider <- BarService <- FooService <- UsersModel
这让我很困惑:因为我使用angular.mock.module('app.foo')
,我本来预计 的依赖关系fooService
甚至不会出现在雷达上。显然他们是,所以我认为我做错了什么。
我应该如何处理我的服务的依赖关系?我应该存根FooService
吗?