- 我已经看到很多关于测试和DI的问题,但到目前为止还没有一个帮助过我。
我有一个模块:
...
<% @articles.each do |art| %>
<h1><%= link_to art.title, art, method: :get %> | id = <%= art.id %> | user_id = <%= art.user_id %></h1>
<div>
<%= art.body %> - <%= link_to "Eliminar", art, method: :delete %>
<% if art.may_publish? %>
- <%= link_to "Publicar", '/articles/#{article.id}/publish' , method: :put %>
<% end %>
</div>
<% end %>
...
使用我想测试的函数的简单服务:
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
吗?