Как проверить с помощью транспортира таблицу с данными, полученными из API - PullRequest
0 голосов
/ 01 октября 2019

В проекте Angular8 я хотел бы протестировать с транспортиром таблицу с данными, полученными из API

На моей HTML-странице:

      <tr *ngFor="let pop of popList" class="pops-list">
        <td>{{pop.name}}</td>
        <td class="pop-description">{{pop.description}}</td>
        <td>{{pop.id}}</td>
        <td>{{pop.area}}</td>
        <td>{{pop.timeZone}}</td>
      </tr>

Моя конфигурация транспортира

const { SpecReporter } = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  SELENIUM_PROMISE_MANAGER: false,
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

И в моем тесте я пытаюсь:

await element.all(by.repeater('pop in popList')).count().then(count => console.log(count));

count.toEqual (3) выдает ошибку: Свойство 'toEqual' не существует для типа 'число'.

Не могли бы вы помочь с этим?

1 Ответ

0 голосов
/ 03 октября 2019

Так что он отлично работает, используя async и await, не уверен, что это лучший способ сделать это. В моем spec-файле:

  it('should be populated with list data', async () => {
    await page.navigateToAdministration();
    let popList = await element.all(by.css('table .pops-list'));
    expect(popList.length).toBe(41);
  });

  it('should display correct POP names', async () => {
    await page.navigateToAdministration();
    const popItems = await element.all(by.css('.pops-list')).all(by.css('.pop-name'));
    expect(popItems[0].getText()).toEqual('AMI');
    expect(popItems[1].getText()).toEqual('ANN');
    expect(popItems[2].getText()).toEqual('AUB');
  });

И я добавил несколько классов css для выбора в моем html.

...