Транспортир: ожидание асинхронного вызова службы в методе OnInit компонента для проверки значения - PullRequest
0 голосов
/ 26 апреля 2018

Я столкнулся с проблемой с транспортиром в моем приложении Angular2 +, пытаясь протестировать некоторые службы Hello World, которые предоставляют значение для тега H1. Когда я помещаю простой текст в тег H1, я могу проверить его, и он работает. Но когда я использую асинхронное обслуживание для предоставления значения тегу H1 в onInit, тест не пройден.

Я пробовал browser.sleep(5000), browser.wait(ExpectedCondition ...), но ничего не получалось.

И многое другое, например, играть с setTimeout и promise, но ничего не получалось.

Вот не асинхронный тест:

import { AppPage } from './app.po';

describe('poc-pn App', () => {
  let page: AppPage;

  beforeEach(() => {
    page = new AppPage();
  });

  it('should display welcome message', () => {
    page.navigateTo();
    expect(page.getParagraphText()).toEqual('Welcome to app!');
  });
});

// navigateTo = browser.get()

// getParagraphText() = element(by.css('app-root h1')).getText();

1 Ответ

0 голосов
/ 27 апреля 2018

Можете ли вы попробовать с await, как это:

it('should display welcome message', () => {
    await page.navigateTo();
    expect(await page.getParagraphText()).toEqual('Welcome to app!');
});
...