Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何编写交换机机箱的单元测试用例?_Angular_Unit Testing_Jasmine_Tdd_Karma Jasmine - Fatal编程技术网

Angular 如何编写交换机机箱的单元测试用例?

Angular 如何编写交换机机箱的单元测试用例?,angular,unit-testing,jasmine,tdd,karma-jasmine,Angular,Unit Testing,Jasmine,Tdd,Karma Jasmine,我不熟悉Angular 10的测试用例,这是我的组件函数代码。如何为交换机用例编写测试用例。希望得到同样的指导 public Mreceived(event) { switch (event && event['event']) { case 'OptionSelected': this.dongleNext(); //private function inside component break; case '

我不熟悉Angular 10的测试用例,这是我的组件函数代码。如何为交换机用例编写测试用例。希望得到同样的指导

public Mreceived(event) {
    switch (event && event['event']) {
      case 'OptionSelected':
        this.dongleNext();  //private function inside component
        break;

      case 'tempSelected':
        break;
    }
  }
根据指南,编写测试用例如下

it('should call dongleNext on onOptionSelected event', () => {
    component.Mreceived({ event: 'OptionSelected' });
    //@ts-ignore
    expect(spyOn(component, 'dongleNext')).toHaveBeenCalled();

  });

它没有说已经调用了预期的spy toggleNext,有人能像其他jasmine单元测试一样对此进行指导吗

it('event shall be OptionSelected', () => {
    // Initialization of subject under test here
    // call business functionality, i.e. Mreceived({event: 'OptionSelected'})
    // Check if expectation has been met.
});
更新:OP希望验证私有功能的调用

...
spyOn<any>(component, 'dongleNext');
expect(component['dongleNext']).toHaveBeenCalled();
...
。。。
spyOn(组件“dongleNext”);
expect(component['dongleNext']).toHaveBeenCalled();
...

我是@phhbr,但是我怎么知道方法dongleNext是否被调用,因为它是一个私有方法如果你真的想这样做(糟糕的设计-你应该只关心方法的更改),你可以在更新的答案中这样做。。。这与你最初的问题无关