Angular 2 - 错误:没有提供令牌FirebaseAppName

问题描述:

我的应用运行良好,但我无法让我的测试通过Firebase。Angular 2 - 错误:没有提供令牌FirebaseAppName

Error: No provider for Token FirebaseAppName! 

这里是我的规格:

import { TestBed, inject } from '@angular/core/testing'; 
import { ApiService } from './api.service'; 
import { HttpModule } from '@angular/http'; 
import {FIREBASE_PROVIDERS, defaultFirebase, AngularFire} from 'angularfire2'; 

describe('ApiService',() => { 
    beforeEach(() => { 
    const firebaseConfig = { 
     apiKey: "foo", 
     authDomain: "bar", 
     databaseURL: "baz", 
     storageBucket: "foo", 
     messagingSenderId: "bar" 
    } 

    TestBed.configureTestingModule({ 
     // providers: [ApiService, defaultFirebase(firebaseConfig)], 
    providers: [ApiService, FIREBASE_PROVIDERS, defaultFirebase(firebaseConfig)], 
    imports: [ 
     HttpModule 
    ] 
    }); 
}); 

it('should ...', inject([ApiService], (service: ApiService) => { 
    expect(service).toBeTruthy(); 
})); 
}); 

在此先感谢。

版本:

"@angular/core": "^2.4.0", 
"jasmine-core": "~2.5.2", 
"firebase": "^3.7.0", 

尝试configure module代替提供商

TestBed.configureTestingModule({ 
    providers: [ApiService] 
    imports: [ 
    HttpModule, 
    AngularFireModule.initializeApp(firebaseConfig) 
    ] 
}); 
+0

意外的值 '[对象的对象]' 由模块 '的AppModule' 进口 – Richard