Hoppa till huvudinnehåll

Support för Angular-komponenttestselar Service

@badisi/wdio-harness är ett tredjepartspaket, för mer information se GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO support för Angular-komponenttestselar.

npm versionnpm donwloadslicense

build statusPRs welcome


Komponenttestselar

En komponenttestsele är en klass som låter ett test interagera med en komponent via ett stött API. Varje seles API interagerar med en komponent på samma sätt som en användare skulle. Genom att använda sele-API:et isolerar ett test sig mot uppdateringar av en komponents interna delar, som att ändra dess DOM-struktur. Idén för komponentselar kommer från PageObject-mönstret som vanligtvis används för integrationstest.

Mer info


Installation

npm install @badisi/wdio-harness --save-dev
yarn add @badisi/wdio-harness --dev

Användning

Metoder

  • createHarnessEnvironment(rootElement) - får en HarnessLoader-instans från ett givet element (standardvärde är body)
  • getHarness(harnessType, element) - söker efter en sele-instans från en given ComponentHarness-klass och element
  • getHarness(harnessType) - söker efter en sele-instans från en given ComponentHarness-klass
  • getHarness(query) - söker efter en sele-instans från ett givet HarnessPredicate
  • getAllHarnesses(query) - fungerar som getHarness, men returnerar en array av sele-instanser
  • waitForAngular() - väntar på att Angular ska avsluta bootstrapping

Exempel

import { MatDatepickerInputHarness } from '@angular/material/datepicker/testing';
import { getHarness } from '@badisi/wdio-harness';

describe('Angular Material Harness', () => {
beforeEach(async () => {
await browser.url('http://localhost:4200');
});

it('MatDatePicker', async () => {
const datepicker = await getHarness(MatDatepickerInputHarness.with({ selector: '#demo-datepicker-input' }));

await datepicker.setValue('9/27/1954');
expect(await datepicker.getValue()).withContext('Date should be 9/27/1954').toBe('9/27/1954');

await datepicker.openCalendar();
const calendar = await datepicker.getCalendar();
await calendar.next();
await calendar.selectCell({ text: '20' });
expect(await datepicker.getValue()).withContext('Date should be 10/20/1954').toBe('10/20/1954');
});
});

Fler exempel här.

Utveckling

Se utvecklardokumentationen.

Bidra

> Vill du hjälpa till?

Vill du rapportera en bugg, bidra med kod eller förbättra dokumentationen? Utmärkt!

Men läs först igenom riktlinjerna för bidrag, och lär dig om inskickningsprocessen, kodregler och mer.

> Uppförandekod

Läs och följ uppförandekoden och hjälp mig att hålla detta projekt öppet och inkluderande.

Welcome! How can I help?

WebdriverIO AI Copilot