Przejdź do głównej treści

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.

npm versionnpm donwloadslicense

build statusPRs welcome


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.

Więcej informacji


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 elementu
  • getHarness(harnessType) - wyszukuje instancję uchwytu na podstawie danej klasy ComponentHarness
  • getHarness(query) - wyszukuje instancję uchwytu na podstawie danego HarnessPredicate
  • getAllHarnesses(query) - działa jak getHarness, ale zwraca tablicę instancji uchwytów
  • waitForAngular() - 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.

Welcome! How can I help?

WebdriverIO AI Copilot