Пытаться:
it('should show three items', () => {
const EXPECTED_NUMBER_OF_ITEMS: number = 3;
page.listOfTabs.count().then(value => {
expect(value).toBe(EXPECTED_NUMBER_OF_ITEMS);
});
});
В качестве альтернативы ответу @Nitzan Tomer вы должны иметь возможность использовать async / wait (TS> = 2.1 для таргетинга на ES5)
it('should show three items', async () => {
const EXPECTED_NUMBER_OF_ITEMS: number = 3;
const value = await page.listOfTabs.count();
expect(value).toBe(EXPECTED_NUMBER_OF_ITEMS);
});
(в качестве дополнительной заметки я считаю, что вам нужна довольно недавняя версия Mocha для правильной обработки обещаний)
Я бы сказал, чтобы использовать async и ждать обработки объекта обещания с минимальными изменениями кода.
// no changes to page.po.ts. handle async and await in .spec.ts file
import {browser, by, element} from 'protractor';
export class HomePage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.css('cfs-root h1')).getText();
}
}
//page.e2e-spec.ts
import {HomePage} from './home.po';
describe('ng-app App', () => {
let page: HomePage;
beforeEach(() => {
page = new HomePage();
});
it('should display the page heading.', async () => { // notice the callback is a async function
page.navigateTo();
expect(await page.getParagraphText()).toBe('cfs works!'); //here we are using await to handle the promise
page.getHomeSearchHeading().then((text) => {
expect(text).toEqual('Universal Data Catalog');
});
});
});
javascript,typescript,e2e-testing,
В качестве альтернативы ответу @Nitzan Tomer вы должны иметь возможность использовать async / wait (TS> = 2.1 для таргетинга на ES5)
it('should show three items', async () => {
const EXPECTED_NUMBER_OF_ITEMS: number = 3;
const value = await page.listOfTabs.count();
expect(value).toBe(EXPECTED_NUMBER_OF_ITEMS);
});
(в качестве дополнительной заметки я считаю, что вам нужна довольно недавняя версия Mocha для правильной обработки обещаний)
Я бы сказал, чтобы использовать async и ждать обработки объекта обещания с минимальными изменениями кода.
// no changes to page.po.ts. handle async and await in .spec.ts file
import {browser, by, element} from 'protractor';
export class HomePage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.css('cfs-root h1')).getText();
}
}
//page.e2e-spec.ts
import {HomePage} from './home.po';
describe('ng-app App', () => {
let page: HomePage;
beforeEach(() => {
page = new HomePage();
});
it('should display the page heading.', async () => { // notice the callback is a async function
page.navigateTo();
expect(await page.getParagraphText()).toBe('cfs works!'); //here we are using await to handle the promise
page.getHomeSearchHeading().then((text) => {
expect(text).toEqual('Universal Data Catalog');
});
});
});