У меня проблема при использовании ng test
: мои тесты не работают из-за этой ошибки:
this.TerrariumsCollection.valueChanges () не является функцией
Эта проблема появляется только тогда, когда я использую команду теста ng.В противном случае все кажется хорошим.
вот мой файл TS:
TerrariumsCollection : AngularFirestoreCollection<Terrarium>;
Terrarium : Observable<Terrarium[]>
constructor(private afs : AngularFirestore) {
this.TerrariumsCollection = this.afs.collection('Terrarium');
this.Terrarium = this.TerrariumsCollection.valueChanges();
}
вот моя спецификация для модульного теста:
import { TestBed } from '@angular/core/testing';
import { MesTerrasService } from './mes-terras.service';
import { BehaviorSubject } from 'rxjs';
import { AngularFirestore, AngularFirestoreModule, AngularFirestoreCollection } from 'angularfire2/firestore';
import { AngularFireModule } from 'angularfire2';
import { environment } from '../environments/environment';
export const firebaseConfig = environment.firebaseConfig;
describe('MesTerrasService', () => {
beforeEach(() => TestBed.configureTestingModule({
providers: [
{ provide: AngularFirestore, useValue: FirestoreStub },
],
imports: [
AngularFireModule.initializeApp(firebaseConfig),
AngularFirestoreModule,
AngularFirestoreCollection
]
}));
it('should be created', () => {
const service: MesTerrasService = TestBed.get(MesTerrasService);
expect(service).toBeTruthy();
});
const FirestoreStub = {
collection: (name: string) => ({
doc: (_id: string) => ({
valueChanges: () => new BehaviorSubject({ foo: 'bar' }),
set: (_d: any) => new Promise((resolve, _reject) => resolve()),
}),
}),
};
});
Когда я использую ng serve
, нет проблем, это работает.Я сравнил мой app.module со всеми модулями, которые я импортировал в мою спецификацию, все кажется хорошим.Может быть, я забыл один?
Можете ли вы помочь мне, пожалуйста?