Тестовый пример, чтобы соответствовать длине опций в раскрывающемся списке - PullRequest
0 голосов
/ 27 февраля 2019
<select-list [(ngModel)]="selectedOption" (click)="onClick()">
  <option-item *ngFor="let option of options" [value]="option">{{option.label}}</option-item>
</select-list>

options: any[] = [
    {
      label: 'Card',
      value: 'Card'
    },
    {
      label: 'Account',
      value: 'Account'
    },
    {
      label: 'Test3',
      value: 'Test3'
    },
    {
      label: 'Test4',
      value: 'Test4'
    }
  ];

Я пытаюсь написать тестовый пример, в котором он проверяет, эквивалентно ли количество элементов в раскрывающемся списке количеству элементов в тестовых данных, вот что я пробовал до сих пор

it('TC 10: should create edl dropdown options', async(() => {
dropdown = fixture.debugElement.queryAll(By.css('select-list'));      expect(dropdown[].nativeElement.length).toEqual(component.paymentOptions.length);
    }));

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Попробуйте это

it('TC 10: should create edl dropdown options', async(() => {
  component.paymentOptions = options;
  fixture.detectChanges();
  const dropdownItems = fixture.debugElement.queryAll(By.css('option-item'));
  expect(dropdownItems.length).toEqual(component.paymentOptions.length);
}));
0 голосов
/ 27 февраля 2019

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

it('TC 10: should create edl dropdown options', async(() => {
    let optionItems = fixture.debugElement.queryAll(By.css('option-item')); 
    expect(optionItems.length).toEqual(component.paymentOptions.length);
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...