Angular 如何编写交换机机箱的单元测试用例?
我不熟悉Angular 10的测试用例,这是我的组件函数代码。如何为交换机用例编写测试用例。希望得到同样的指导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 '
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是否被调用,因为它是一个私有方法如果你真的想这样做(糟糕的设计-你应该只关心方法的更改),你可以在更新的答案中这样做。。。这与你最初的问题无关