2

-我见过很多关于测试和 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吗?

4

0 回答 0