Я столкнулся с проблемой, из-за которой тест постоянно терпит неудачу, когда он запускается со всеми другими тестами в моем приложении. Возвращаемая ошибка
Uncaught TypeError: вы указали «неопределенное» там, где ожидался поток. Вы можете предоставить Observable, Promise, Array или Iterable. брошенный
Ниже приведены два класса и тестовый файл в вопросах.
Класс уведомлений
export class Notification {
message: string;
category: string;
clearAll: boolean = false;
constructor(message: string, category?: string, clear?: boolean) {
this.message = message;
if (category) {
this.category = category;
}
if (clear) {
this.clearAll = clear;
}
}
}
Класс службы уведомлений
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Notification } from '../shared/notification';;
@Injectable({
providedIn: 'root'
})
export class NotificationsService {
notificationSubject: Subject<Notification>;
notification$: Observable<any>;
constructor() {
this.notificationSubject = new Subject<Notification>();
this.notification$ = this.notificationSubject.asObservable();
}
getNotificationObservable(): Observable<Notification> {
return this.notification$;
}
/**
* Method allowing a notification to be added so that subsribers can deal with is according.
* @param {Notification}notification
*/
addNotifications(notification: Notification): void {
this.notificationSubject.next(notification);
}
}
уведомлениеService.spec.ts
import { NotificationsService } from './notifications.service';
describe('NotificationService', () => {
let service: NotificationsService;
beforeEach(() => { service = new NotificationsService(); });
it('to be created', () => {
expect(1 === 1).toBeTruthy();
});
});
если я запускаю этот тест как сфокусированный, он проходит. то есть
fit('to be created', () => {
expect(1 === 1).toBeTruthy();
});
Из поисков, которые я сделал, кажется, есть предложения, которые либо:
- Предыдущие тесты не сбрасывают должным образом испытательный стенд, поэтому тест проходит успешно изолированно, но терпит неудачу при запуске с другими
- или что класс уведомлений совместно использует свойство между тестами, и это вызывает проблему.
Я подозреваю, что дело может быть во второй пуле, но я не могу определить проблему.