Спецификация не имеет ошибки консоли ожидания, хотя ожидание присутствует - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть спецификация, которая должна ожидать, но она говорит, что ожиданий нет ...

 it('should click on yes button of technician and check save&continue 
  functionality', () => {
    const saveAndContinue = 
    fixture.debugElement.query(By.css(saveContinueBtn)).nativeElement;
    saveAndContinue.click();
    fixture.detectChanges();
    fixture.whenStable().then(() => {
    const spy = spyOn(component, 
    'isSaveAndContinueClicked').and.callThrough();
    expect(component).toBeDefined();
    expect(spy);
    component.isSaveAndContinueClicked();
    expect(component.isSaveAndContinueClicked).toHaveBeenCalled();
    const yesbutton = 
    fixture.debugElement.query(By.css('#yesButton')).nativeElement;
    expect(yesbutton).toBeTruthy();
    fixture.detectChanges();
    fixture.whenStable().then(() => {
    spyOn(component, 'change').and.callThrough();
    spyOn(component, 'change2').and.callThrough();
    yesbutton.click();
    expect(component.change).toHaveBeenCalled();
    expect(component.change2).toHaveBeenCalled();
    });
  });
});

Выдает ошибку, так как spec testComponent должен нажать на кнопку «Да» технического специалиста и проверить функциональность сохранения и продолжения.никаких ожиданий ... Не могли бы вы предложить ...

1 Ответ

0 голосов
/ 12 февраля 2019

Вы должны добавить свой обратный вызов в блоке async или fakeAsync, иначе весь ваш код будет выполняться синхронно, не встречая expects.

Это потому, что у вас есть утверждения внутри fixture.whenStable().then(() => {....})который работает асинхронно.

it('should click on yes button of technician and check save&continue 
  functionality', async(() => {
    const saveAndContinue = 
    fixture.debugElement.query(By.css(saveContinueBtn)).nativeElement;
    saveAndContinue.click();
    ........

}));
...