Zum Hauptinhalt springen

Unterstützung für Angular-Komponententest-Harnesses Service

@badisi/wdio-harness ist ein Paket von Drittanbietern, weitere Informationen finden Sie auf GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO Unterstützung für Angular-Komponententest-Harnesses.

npm versionnpm donwloadslicense

build statusPRs welcome


Komponententest-Harnesses

Ein Komponenten-Harness ist eine Klasse, die einem Test ermöglicht, über eine unterstützte API mit einer Komponente zu interagieren. Die API jedes Harness interagiert mit einer Komponente auf die gleiche Weise wie ein Benutzer. Durch die Verwendung der Harness-API schützt sich ein Test vor Updates an den internen Abläufen einer Komponente, wie zum Beispiel Änderungen an ihrer DOM-Struktur. Die Idee für Komponenten-Harnesses stammt aus dem PageObject-Muster, das häufig für Integrationstests verwendet wird.

Mehr Informationen


Installation

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

Verwendung

Methoden

  • createHarnessEnvironment(rootElement) - erhält eine HarnessLoader-Instanz von einem gegebenen Element (standardmäßig body)
  • getHarness(harnessType, element) - sucht nach einer Harness-Instanz von einer gegebenen ComponentHarness-Klasse und Element
  • getHarness(harnessType) - sucht nach einer Harness-Instanz von einer gegebenen ComponentHarness-Klasse
  • getHarness(query) - sucht nach einer Harness-Instanz von einem gegebenen HarnessPredicate
  • getAllHarnesses(query) - verhält sich wie getHarness, gibt aber ein Array von Harness-Instanzen zurück
  • waitForAngular() - wartet darauf, dass Angular das Bootstrapping abschließt

Beispiel

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');
});
});

Weitere Beispiele hier.

Entwicklung

Siehe die Entwicklerdokumentation.

Mitwirken

> Möchten Sie helfen?

Möchten Sie einen Fehler melden, Code beitragen oder die Dokumentation verbessern? Ausgezeichnet!

Bitte lesen Sie jedoch zuerst die Richtlinien zum Mitwirken und informieren Sie sich über den Einreichungsprozess, Kodierungsregeln und mehr.

> Verhaltenskodex

Bitte lesen und befolgen Sie den Verhaltenskodex und helfen Sie mir, dieses Projekt offen und inklusiv zu halten.

Welcome! How can I help?

WebdriverIO AI Copilot