Spec has no expectation console error although expect is present

拈花ヽ惹草 提交于 2020-07-09 05:25:10

问题


I have the spec that has to expect still it says there are no expectations...

 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();
    });
  });
});

It throws the error as spec testComponent should click on yes button of the technician and check save&continue functionality has no expectations... Can you please suggest...


回答1:


You should add your callback within an async or fakeAsync block or else all your code would run synchronously without encountering any expects.

This is because you are having assertions inside fixture.whenStable().then(() => {....}) which runs asynchronously.

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();
    ........

}));


来源:https://stackoverflow.com/questions/54642650/spec-has-no-expectation-console-error-although-expect-is-present

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!