Тестирование жасмина: ожидаемый шпионский выброс будет вызван - PullRequest
0 голосов
/ 07 августа 2020

Я тестирую компонент, который генерирует событие от другого компонента. Я пытаюсь проверить, генерирует ли мой дочерний компонент это событие:

У меня есть этот эмиттер в моем компоненте:

@Output() emitter = new EventEmitter<MyEmitter[]>();

Я делаю HTTP-запрос, и когда я получаю ответ, я emit:

getSomething() {
    this.myService.get()
      .subscribe((res: any[]) => {
        this.emitter.emit(res);
      }
    );
}

И в своем тесте я пробовал:

fit('should emit a value', fakeAsync(async () => {
    const spyOnEventEmitter = spyOn(component.emitter, 'emit');
    spyOn(myService, 'get').and.returnValue(of(mockService.list));
    spyOn(component, 'getSomething');
    component.getSomething();
    tick();
    await fixture.whenStable();
    fixture.detectChanges();
    expect(spyOnEventEmitter).toHaveBeenCalled();
}));

Почему это происходит?

Также пробовал:

fit('should emit a value', fakeAsync(async () => {
    let eventEmitted;
    component.emitter.subscribe((event) => {
      eventEmitted = event;
    });
    spyOn(myService, 'get').and.returnValue(of(mockService.list));
    spyOn(component, 'getSomething');
    component.getSomething();
    tick();
    await fixture.whenStable();
    fixture.detectChanges();
    expect(spyOnEventEmitter).toHaveBeenCalled();
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...