Я относительно новичок в создании юнит-тестирования, и, несмотря на то, что я изучаю документы и гуглюсь, я не нахожу никакого подхода к своим намерениям.
Я хочу проверить это, если после щелчкакнопка переменные получают новые значения, но после проверки, что форма действительна и эффективно была вызвана функция, если я проверяю переменные, она остается в старом значении, есть способ достичь этого или я делаю неправильный подходпроверить мой компонент?
К этому моменту я уже сделал тест для шаблонов, высмеиваю сервисы, даже изменил значения с помощью debugElement.setValue ('...') с формами, на данный моментвсе хорошо.
Я пытался создать условие «ожидаемо» после fixture.detectChanges (), но не могу проверить, изменился ли после щелчка переменная.
it('should click if [VALID]', async(() => {
component.identificationForm.controls['username'].setValue('userTest');
component.identificationForm.controls['password'].setValue('passTest');
fixture.detectChanges();
// SpyOn component.onSubmit
// inner Fn() = component.error = !component.error;
spyOn(component, 'onSubmit');
const el = fixture.debugElement
.query(By.css('.sb-btn_raised')).nativeElement;
el.click();
expect(component.onSubmit).toHaveBeenCalled();
fixture.detectChanges();
expect(component.error).toBe(true);
// this after click should be True but it stays as false.
}));
});
ВВ конце я хочу попробовать, если после нажатия кнопки я получу новые значения, которые мне всегда будут нужны в различных сценариях, таких как ошибка, предупреждение или успех.
Смысл в том, что независимо от того, какая реализация илидаже ответ, компонент будет вести себя как ожидалось.
|-------------------- Решение ---------------------- |
Просто добавьте spyOn (component, 'onSubmit'). And.callThrough ();для слежки за ним вызовите внутренние коды блоков.