简体   繁体   English

单元测试用例来检查函数是否被调用

[英]Unit test case to check if function is called

I'm trying to write a unit test case to check if the function is being called inside the switch case I have a following function我正在尝试编写一个单元测试用例来检查该函数是否在 switch 案例中被调用我有一个以下函数

public onMessageReceived(event) {
    switch (event && event['event']) {
      case 'onOptionSelected':
        this.toggleNext();
        break;

      case 'temp':
        break;
    }
  }

and have tried to write the unit test case for the same as below ,but the test case always fails 'Expected spy toggleNext to have been called.'并尝试编写与下面相同的单元测试用例,但测试用例总是失败“预期的间谍切换下一步已被调用”。 what could be issue any guidance would be appreciated.可能会出现什么问题,我们将不胜感激。

 it('should call toggleNext on onOptionSelected event', () => {
    component.onMessageReceived({ event: 'OptionSelected' });
    fixture.detectChanges();
    fixture.whenStable().then(() => {
      expect(spyOn<any>(component, 'toggleNext')).toHaveBeenCalled();
    });
  });

Declare the spy first, before you call the function在调用函数之前先声明 spy

 it('should call toggleNext on onOptionSelected event', () => {
    const toggleSpy = spyOn(component, 'toggleNext');
    component.onMessageReceived({ event: 'onOptionSelected' });
    expect(toggleSpy).toHaveBeenCalled()
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM