我正在testing服务A,但是服务A取决于服务B(即服务B被注入服务A)。 我已经看到了这个问题,但我的情况有点不同,因为在我看来, 嘲笑服务B而不是注入服务B的实际实例更有意义。我会用茉莉间谍来嘲笑它。 这是一个示例testing: describe("Sample Test Suite", function() { beforeEach(function() { module('moduleThatContainsServiceA'); inject([ 'serviceA', function(service) { this.service = service; } ]); }); it('can create an instance of the service', function() { expect(this.service).toBeDefined(); }); }); 我得到的错误是: 错误:未知提供者:serviceBProvider 我怎么能这样做?
在Vojta Jina出色的存储库中,他演示了指令的testing,他定义了模块包装器之外的指令控制器。 看到这里: https : //github.com/vojtajina/ng-directive-testing/blob/master/js/tabs.js 这不是不好的做法,并污染全球命名空间? 如果有另一个地方可能是合理的调用TabsController,是不是会打破东西? 上述指令的testing可以在这里find: https : //github.com/vojtajina/ng-directive-testing/commit/test-controller 是否有可能独立于指令的其余部分testing指令控制器,而不将控制器置于全局名称空间中? 将整个指令封装在app.directive(…)定义中将会很好。