jasmine:模拟角度服务产生超时

时间:2015-10-05 09:22:04

标签: angularjs unit-testing angularjs-service karma-jasmine

我正在尝试测试角度服务。该服务正在使用其他服务,我想嘲笑那个。

我们说我的服务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.

所以我想了解这里有什么问题,以及如何正确地模拟服务依赖。

谢谢!

0 个答案:

没有答案