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.
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.
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 ElementgetHarness(harnessType)
- sucht nach einer Harness-Instanz von einer gegebenen ComponentHarness-KlassegetHarness(query)
- sucht nach einer Harness-Instanz von einem gegebenen HarnessPredicategetAllHarnesses(query)
- verhält sich wie getHarness, gibt aber ein Array von Harness-Instanzen zurückwaitForAngular()
- 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.