@Injectable()
export class MyServ {
public stream: ReplaySubject<any> = new ReplaySubject();
constructor (private subService: SubService) {}
protected init() {
this.subService.on(this.updateElement, (event) => this.update(event),
false);
}
private update(event) {
/// do something
}
}
У меня есть тест для этого класса с использованием фреймворка Jasmine.
Итак:
beforeEach(() => {
TestBed.configureTestingModule{
providers: [
MyServ,
{provide: SubService, useClass: SubServiceStub}
]
}
describe('My Serv should', (done) => {
let myServ;
myServ.init();
myServ.stream.subscribe(e => {
expect(e).toEqual('foo');
done();
});
mySubService.fire('foo');
});
});
Вообще говоря, этот код в порядке. Если я запускаю его один раз, тогда все в порядке, но если другие тесты выполняются параллельно, то тайм-аут превышает. Это хороший подход с помощью метода done () для проверки наблюдаемого метода подписки? Или есть лучший способ добиться этого ??