Как прочитать свойства формы, управляемые шаблоном, в тесте jasmine в angular

#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. Есть какое-нибудь решение для этого?