使用量角器和角度6测试动态创建的表标题的列表

时间:2018-08-08 14:32:15

标签: protractor angular6 e2e-testing

我正在使用角度为6的量角器,因为我想编写测试用例来测试表头列表,这些表头是用ngOnInit中来自后端的数据创建的。

我尝试使用tick和fakeAsync,但继续出错

  

失败:无法读取null的属性'assertPresent'

下面是我的代码:

app.po.ts

goToScannersList() {
    return browser.get('/scanners');
  }
getScannersList() {

        let items = element.all(by.css('.scannerlist th')).map(function (elm) {
          return elm.getText();
        });
        return items;

      }

如果我使用类似1)的规范,即使我删除page.goToScannersList();我也会遇到上述错误。 但是如果使用2)中的规范,则无论返回什么值,我的测试都是成功的。

1) app.e2e-spec.ts

it('should display list of scanners', fakeAsync(() => {
    page.goToScannersList();
    tick(4000);
    expect(page.getScannersList()).toEqual([
      "ScannerID",
      "Desc",
      "Owner"
    ]);

    }));

2) app.e2e-spec.ts

it('should display list of scanners', () => {
    page.goToScannersList();
    fakeAsync(()=>{
    tick(4000);
    expect(page.getScannersList()).toEqual([
      "ScannerID",
      "Desc",
      "Owner"
    ]);
 })
    });

scanners.component.html

<table class="scannerlist" id="scannersList" style="text-align:center;width:100%">
<thead>
  <tr ><th *ngFor="let col of scannerKeys">{{col}}</th>
  </tr>
</thead>
<tbody>
  <tr *ngFor="let row of scannerData">
    <td>{{row.ScannerID}}</td>
    <td>{{row.Desc}}</td>
    <td>{{row.Owner}}</td>
  </tr>
  </tbody>
</table>

scanners.component.ts

ngOnInit() {
    this.scannerService.getScannerDetails().subscribe((data)=>{
      this.scannerData = data.Data;
      this.scannerKeys = this.getKeys(data.Data[0]);
    });

  }

让我知道是否有人知道如何实现它。谢谢你。

0 个答案:

没有答案