angular4 тестирование входных значений после изменения

1

Я бы изменил значение моего ввода во время тестирования, поэтому я сделал:

const de = fixture.debugElement.query(By.css('[formControlName="username"]'));
de.nativeElement.value = "10";

Затем я отправлю форму:

component.onSubmit();

И значение ввода все равно остается неизменным. Я попытался добавить

fixture.detectChanges();

После отправки формы, но она на самом деле ничего не делает.

Теги:
angular
unit-testing
testing
jasmine

1 ответ

-2

Почему вы получаете элемент с помощью селектора CSS? Угловой способ создания реактивных форм, которые намного проще, чем то, что вы пытаетесь сделать. Возьмем следующий пример:

export class ReactiveFormExampleComponent implements OnInit {
  public form: FormGroup;

  constructor () { } 

  ngOnInit(): void {
    this.form = new FormGroup({ 
      'username': FormControl(null, [/** Any form validators here **/]) 
    });
  }

  onSubmit(): void {
    // get the value of the username
    const username = this.form.get('username').value;
  }
}

Если вы действительно хотели посмотреть значение и обнаружить изменения, не нажимая кнопку с прикрепленным событием щелчка, вы сделаете это после инициализации формы.

this.form.get('username').valueChanges.subscribe(val => {
  // new username value is 'val'
});
  • 0
    Но я пишу про спец
  • 0
    @ Stwosch вы не указали, что где-либо в вопросе или заголовке, вы бы получили больше ответов, если бы вы сделали это ясно
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню