Wsparcie dla Usługi Testowej Uchwytów Komponentów Angular
@badisi/wdio-harness to pakiet zewnętrzny, więcej informacji na GitHub | npm
@badisi/wdio-harness
🔬 WebdriverIO wsparcie dla uchwytów testowych komponentów Angular.
Uchwyty testowe komponentów
Uchwyt komponentu to klasa, która pozwala testowi wchodzić w interakcje z komponentem za pomocą wspieranego API. API każdego uchwytu współdziała z komponentem w taki sam sposób, w jaki zrobiłby to użytkownik. Używając API uchwytu, test izoluje się od aktualizacji wewnętrznych struktur komponentu, takich jak zmiana struktury DOM. Pomysł na uchwyty komponentów pochodzi ze wzorca PageObject powszechnie używanego w testach integracyjnych.
Instalacja
npm install @badisi/wdio-harness --save-dev
yarn add @badisi/wdio-harness --dev
Użycie
Metody
createHarnessEnvironment(rootElement)
- pobiera instancję HarnessLoader z danego elementu (domyślnie body)getHarness(harnessType, element)
- wyszukuje instancję uchwytu na podstawie danej klasy ComponentHarness i elementugetHarness(harnessType)
- wyszukuje instancję uchwytu na podstawie danej klasy ComponentHarnessgetHarness(query)
- wyszukuje instancję uchwytu na podstawie danego HarnessPredicategetAllHarnesses(query)
- działa jak getHarness, ale zwraca tablicę instancji uchwytówwaitForAngular()
- czeka na zakończenie bootstrapowania Angulara
Przykład
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');
});
});
Więcej przykładów tutaj.
Rozwój
Zobacz dokumentację dla deweloperów.
Współpraca
> Chcesz pomóc?
Chcesz zgłosić błąd, przyczynić się do kodu lub ulepszyć dokumentację? Świetnie!
Ale najpierw przeczytaj wytyczne dotyczące współpracy i dowiedz się więcej o procesie zgłaszania, zasadach kodowania i więcej.
> Kodeks Postępowania
Przeczytaj i przestrzegaj Kodeksu Postępowania i pomóż mi utrzymać ten projekt otwartym i inkluzywnym.