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)
]
});
意外的值 '[对象的对象]' 由模块 '的AppModule' 进口 – Richard