javascript - Typescript-feil: Argument av typen 'number' kan ikke tildeles parameter av typen 'Expected>'


Jeg har følgende funksjon som feiler ved kjøring:

it('should show three items', () => {
    const EXPECTED_NUMBER_OF_ITEMS: number = 3;
    const countOfTabElements: Promise<number> = page.listOfTabs.count();
    expect(countOfTabElements).toBe(EXPECTED_NUMBER_OF_ITEMS);
});

Det gir følgende feil når jeg kjører det:

Argument av typen 'number' kan ikke tildeles parameter av typen 'Expected>'. (2345)

Noen ideer hvorfor?

Svar #1

Alternativt til @Nitzan Tomers svar bør du kunne bruke async/await (TS >= 2.1 for å målrette 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);
});

(som en sidenotat tror jeg at du trenger en ganske nyere versjon av Mocha for å håndtere avvisning av løfter korrekt)

Svar #2

Prøv :

it('should show three items', () => {
    const EXPECTED_NUMBER_OF_ITEMS: number = 3;
    page.listOfTabs.count().then(value => {
        expect(value).toBe(EXPECTED_NUMBER_OF_ITEMS);
    });
});

Relaterte artikler