0
我正在使用AngularFire2。運行測試時我得到了這個異常。沒有AngularFire的提供商
這是我的測試是什麼樣子:
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不能注入,因爲它是一個功能?
Angular [配置'beforeEach'調用](https://github.com/angular/angular/blob/2.0.0/modules/%40angular/core/testing/testing.ts#L23-L28)重置'TestBed'。這就是爲什麼'TestBed.configureTestingModule'調用需要在beforeEach中進行的原因 - 在測試之前,你的'beforeAll'和'TestBed'被調用後,Angular的'beforeEach'被調用。 – cartant