次のAngularテストがあります:
it('should pass', fakeAsync(() => {
let a;
const eventEmitter1 = of('A');
eventEmitter1.subscribe(v => a = v);
let b;
const eventEmitter2 = new EventEmitter();
eventEmitter2.emit('B');
eventEmitter2.subscribe(v => b = v);
tick();
flush();
console.log(a); // Outputs A
console.log(b); // outputs undefined
expect(a).toBe('A');
expect(b).toBe('B'); // How to make the test to pass here?
}));
をフラッシュできずeventEmitter2
、テストが失敗します。EventEmmiter.emit()
テストでどのようにフラッシュできますか?
注: これは、内部的async
に使用する Angular のパイプを使用する私のテストの簡略化されたバージョンです。EventEmitter
"@angular/core": "^8.2.14"