测试用例以匹配下拉菜单中选项的长度

时间:2019-02-27 16:01:21

标签: angular typescript jasmine karma-jasmine

 par(mfrow=c(4,7))
    for (i in DP[,2:29]) {
      plot(DP$Year,i,
           ylim=range(c(0, 400)),
           type="p",col="red", xaxt="n", yaxt="n",
           ylab="mortality rate",
           xlab="year",
           pch=16, main=c(colnames(DP[,2:29])))
      axis(side = 1)
      axis(side = 2, seq(from=0, to=400, by=25))
    }

我正在尝试编写一个测试用例,它在检查下拉列表中的项目数量是否等于测试数据中的项目数量,这是我到目前为止所尝试的

<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'
    }
  ];

2 个答案:

答案 0 :(得分:1)

尝试直接查询选项项,然后检查该数组的长度,而不是尝试访问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);
}));

答案 1 :(得分:1)

尝试一下

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);
}));