#unit-testing #jasmine #tdd #karma-jasmine
#модульное тестирование #jasmine #tdd #карма-жасмин
Вопрос:
Я учусь писать тестовый пример в jasmine, у меня есть функция, которая содержит оператор switch следующим образом
public onMReceived(event) {
switch (event amp;amp; event['event']) {
case 'onOplected':
this.Next();
break;
case 'temp':
break;
}
}
Я написал правильный тестовый пример, когда случай выбран, но для покрытия другого случая, когда регистр ‘temp’
it('should call temp on onOplected value in switch', () => {
//const toggleSpy = spyOn<any>(component, 'Next');
component.ngOnInit();
fixture.detectChanges();
component.onMessageReceived({ event: 'temp', data: {} });
// expect(toggleSpy).toHaveBeenCalledWith(undefined);
});
как я должен написать expect для этого, пожалуйста, если кто-нибудь может помочь в этом, пожалуйста, руководство.
Ответ №1:
Вы можете проверить, что next не был вызван или что-то в этом роде.
it('should do nothing if the event is temp and not call next', () => {
const toggleSpy = spyOn<any>(component, 'Next');
component.ngOnInit();
fixture.detectChanges();
component.onMessageReceived({ event: 'temp', data: {} });
// also change your toHaveBeenCalledWith(undefined) to .toHaveBeenCalled() in your previous test
expect(toggleSpy).not.toHaveBeenCalled(); // put .not.toHaveBeenCalled();
});