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.
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.
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 datigetHarness(harnessType)
- cerca un'istanza di harness da una classe ComponentHarness datagetHarness(query)
- cerca un'istanza di harness da un HarnessPredicate datogetAllHarnesses(query)
- funziona come getHarness, ma restituisce un array di istanze harnesswaitForAngular()
- 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.