Aller au contenu principal

Service de support pour les harnais de test de composants Angular

@badisi/wdio-harness est un package tiers, pour plus d'informations veuillez consulter GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO support pour les harnais de test de composants Angular.

npm versionnpm donwloadslicense

build statusPRs welcome


Harnais de test de composants

Un harnais de composant est une classe qui permet à un test d'interagir avec un composant via une API supportée. L'API de chaque harnais interagit avec un composant de la même manière qu'un utilisateur le ferait. En utilisant l'API du harnais, un test se protège contre les mises à jour des éléments internes d'un composant, comme la modification de sa structure DOM. L'idée des harnais de composants provient du modèle PageObject couramment utilisé pour les tests d'intégration.

Plus d'informations


Installation

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

Utilisation

Méthodes

  • createHarnessEnvironment(rootElement) - obtient une instance HarnessLoader à partir d'un élément donné (par défaut le corps)
  • getHarness(harnessType, element) - recherche une instance de harnais à partir d'une classe ComponentHarness donnée et d'un élément
  • getHarness(harnessType) - recherche une instance de harnais à partir d'une classe ComponentHarness donnée
  • getHarness(query) - recherche une instance de harnais à partir d'un HarnessPredicate donné
  • getAllHarnesses(query) - agit comme getHarness, mais renvoie un tableau d'instances de harnais
  • waitForAngular() - attend qu'Angular termine son amorçage

Exemple

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

Plus d'exemples ici.

Développement

Consultez la documentation pour les développeurs.

Contribution

> Vous voulez aider ?

Vous souhaitez signaler un bug, contribuer au code ou améliorer la documentation ? Excellent !

Mais veuillez d'abord lire les directives pour contribuer, et apprendre le processus de soumission, les règles de codage et plus encore.

> Code de conduite

Veuillez lire et suivre le Code de conduite et aidez-moi à maintenir ce projet ouvert et inclusif.

Welcome! How can I help?

WebdriverIO AI Copilot