首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有AngularFire的提供程序

没有AngularFire的提供程序
EN

Stack Overflow用户
提问于 2016-09-16 05:16:06
回答 1查看 1.3K关注 0票数 0

我使用的是AngularFire2。我在运行测试时遇到了这个异常。

我的测试是这样的:

代码语言:javascript
复制
import {inject, TestBed} from '@angular/core/testing';
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2';

describe('stock data service', () => {
    beforeAll(() => {
        const config = {
            apiKey: "123",
            authDomain: "123.firebaseapp.com",
            databaseURL: "https://123.firebaseio.com",
            storageBucket: "123.appspot.com",
        }; 
        TestBed.configureTestingModule({
            providers: [FIREBASE_PROVIDERS, defaultFirebase(config)]   
        });
    });

    it('should connect to Firebase', inject([AngularFire], (af : AngularFire) => {
        expect(af.database).not.toBe(null);
    }));

});

我猜AngularFire不能被注入是因为它是一个函数?

EN

回答 1

Stack Overflow用户

发布于 2016-09-20 11:19:17

将“beforeAll”替换为“beforeEach”可解决此问题。

但是,有人能解释一下为什么这个改变能让它工作吗?

这是我发现的:

我可以看到在调用configureTestingModule之后,额外的提供程序被添加到全局TestBed中。然而,对于beforeAll,这些额外的提供程序在稍后调用TestBed.execute(tokens: any[], fn: Function)时不知何故丢失了,因此无法被依赖项注入器找到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39520496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档