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