Angular 4 (карма) Проверка входного значения для ввода в поле - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь проверить событие, значение которого вводится с клавиатуры. моя проблема заключается в том, что после установки значения в поле ввода, когда я печатаю, он печатает, но когда я печатаю его внутри whenStable (), он печатает пустой Я хочу знать, почему это значение сбрасывается внутри функции Whitstable (). и как я могу это исправить?

Я сослался: Обновление поля ввода html из теста Angular 2 для написания этого теста.

it('Test input field value. ', async () => {
    const divDescription = fixture.debugElement.query(By.css('#costDescription'));

    divDescription.nativeElement.value = 'text';
    divDescription.nativeElement.dispatchEvent(new Event('input'));
    fixture.detectChanges();
    console.log('sendInput : ', divDescription.nativeElement.value); // prints 'text'
    fixture.whenStable().then(() => {
      console.log('sendInput : ', divDescription.nativeElement.value); // prints ''
      expect(divDescription.nativeElement.value).toContain('text');
    });
  });

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Удаление WhenStable () делает это возможным.

  it('Test input field value. ', async () => {
      const divDescription = fixture.debugElement.query(By.css('#costDescription'));
      divDescription.nativeElement.value = 'text';
      divDescription.nativeElement.dispatchEvent(new Event('input'));
      fixture.detectChanges();
      expect(divDescription.nativeElement.value).toContain('text');
  });
0 голосов
/ 14 сентября 2018

Вы должны переместить вызов обнаружения изменения внутри wheStable

it('Test input field value. ', async () => {
 const divDescription = fixture.debugElement.query(By.css('#costDescription'));

 divDescription.nativeElement.value = 'text';
 divDescription.nativeElement.dispatchEvent(new Event('input'));

 console.log('sendInput : ', divDescription.nativeElement.value); // prints 'text'
 fixture.whenStable().then(() => {
  fixture.detectChanges(); // moved inside
  console.log('sendInput : ', divDescription.nativeElement.value); 
  expect(divDescription.nativeElement.value).toContain('text');
 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...