Vai al contenuto principale

Servizio di supporto per i test harness dei componenti Angular

@badisi/wdio-harness è un pacchetto di terze parti, per maggiori informazioni consultare GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO supporto per i test harness dei componenti Angular.

npm versionnpm donwloadslicense

build statusPRs welcome


Test harness dei componenti

Un test harness di componente è una classe che consente a un test di interagire con un componente tramite un'API supportata. L'API di ciascun harness interagisce con un componente nello stesso modo in cui lo farebbe un utente. Utilizzando l'API dell'harness, un test si isola contro gli aggiornamenti delle parti interne di un componente, come la modifica della sua struttura DOM. L'idea dei test harness dei componenti deriva dal pattern PageObject comunemente utilizzato per i test di integrazione.

Maggiori informazioni


Installazione

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

Utilizzo

Metodi

  • createHarnessEnvironment(rootElement) - ottiene un'istanza di HarnessLoader da un elemento dato (di default il body)
  • getHarness(harnessType, element) - cerca un'istanza di harness da una classe ComponentHarness e un elemento dati
  • getHarness(harnessType) - cerca un'istanza di harness da una classe ComponentHarness data
  • getHarness(query) - cerca un'istanza di harness da un HarnessPredicate dato
  • getAllHarnesses(query) - funziona come getHarness, ma restituisce un array di istanze harness
  • waitForAngular() - attende che Angular finisca il bootstrap

Esempio

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

Altri esempi qui.

Sviluppo

Vedi la documentazione per sviluppatori.

Contribuire

> Vuoi Aiutare?

Vuoi segnalare un bug, contribuire con del codice o migliorare la documentazione? Eccellente!

Ma per favore leggi prima le linee guida per contribuire, e informati sul processo di invio, le regole di codifica e altro ancora.

> Codice di Condotta

Si prega di leggere e seguire il Codice di Condotta e aiutami a mantenere questo progetto aperto e inclusivo.

Welcome! How can I help?

WebdriverIO AI Copilot