#angular #unit-testing #jasmine #angular-forms
Вопрос:
У меня есть форма ниже в test.html шаблон.
<form (ngSubmit)='onSubmit()' #testForm='ngForm'>
ниже приведен мой код test.ts
@ViewChild('testForm' {static: false}) testForm: NgForm;
async onSubmit() {
if(this.testForm.valid)
{
this.valid = true;
}
}
ниже приведен код test.spec для функции onSubmit.
it('testing submit function', async () => {
const debugElement = fixture.debugElement;
const testForm: ngForm = debugElement.children[0].injector.get(ngForm);
console.log(testForm); // here I got the form in the unit test console
testForm.valid = true; // tired to manually set the value (tried component.testForm.valid = true as well)
component.onSubmit();
expect(component.valid).toEqual(true);
});
во время выполнения модульного теста я получаю ошибку типа «не удается прочитать свойства неопределенного(чтение «допустимо»)». testForm.valid не читается в файле спецификации, и условие if еще не охвачено.
Любая идея, как прочитать/установить свойства ngForm здесь. Пожалуйста, помогите.
Комментарии:
1. Есть какое-нибудь решение для этого?