我正在尝试测试角度服务。该服务正在使用其他服务,我想嘲笑那个。
我们说我的服务myService
取决于服务myOtherService
。当我刚刚测试应用程序时
Unknown provider: myOtherServiceProvider <- myOtherService <- myService
这是因为我没有在单元测试中包含指定服务的文件。我也不想要,因为我想嘲笑这项服务。
我遇到了这个reference,并试图用这样的东西:
describe('Service: myService', function() {
var myService;
beforeEach(function(){module('myApp');});
beforeEach(function($provide){
module(function($provide) {
$provide.service('myOtherService', function() {
this.doSomething = function(){
//...
}
});
});
});
beforeEach(inject(function(_myService_) {
myService = _myService_;
}));
describe('Duck Typing', function() {
it('should contain a doSomething() API function', function(){
expect(angular.isFunction(myService.doSomething)).toBe(true);
});
});
});
但是在运行单元测试时,我收到以下错误:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
所以我想了解这里有什么问题,以及如何正确地模拟服务依赖。
谢谢!