0

次の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"

ここに画像の説明を入力

4

1 に答える 1