Angular 7 компонент тестирования - как проверить значение входного элемента - PullRequest
0 голосов
/ 03 марта 2019

Я обновил существующее рабочее приложение с Angular 4 до Angular 7.

Для ввода HTML, такого как:

<input id="encryptedValue" readonly class="form-control" [ngModel]="Response.encryptedText" size="50" />

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

  const de = fixture.debugElement.query(By.css('#encryptedValue'));
  const el = de.nativeElement;
  expect(el.value).toBe(dummyStr);

После обновления el.value будет '' вместо 'Test'

Если я сделаю console.log(el), отобразится следующая строка:

<input _ngcontent-c0="" class="form-control ng-untouched ng-pristine ng-valid" id="encryptedValue" readonly="" size="50" ng-reflect-model="Test">

Кажется, что значение 'Test' теперь из атрибута ng-refle-model.Я могу проверить значение атрибута, выполнив:

expect(el.getAttribute('ng-reflect-model')).toBe('Test');

Но правильный ли это способ проверки значения элемента в представлении компонента?

1 Ответ

0 голосов
/ 06 марта 2019

эл.значение выглядит правильно.Попробуйте:

fixture.detectChanges();
fixture.whenStable().then(() => {
  expect(el.value).toBe(dummyVal)
})
...