Pular para o conteúdo principal

Serviço de Suporte para Testes de Componentes Angular

@badisi/wdio-harness é um pacote de terceiros, para mais informações consulte GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO suporte para testes de componentes Angular.

npm versionnpm donwloadslicense

build statusPRs welcome


Testes de componentes

Um harness de componente é uma classe que permite que um teste interaja com um componente por meio de uma API suportada. A API de cada harness interage com um componente da mesma forma que um usuário faria. Ao usar a API de harness, um teste se isola contra atualizações nos detalhes internos de um componente, como a alteração de sua estrutura DOM. A ideia para os harnesses de componentes vem do padrão PageObject comumente usado para testes de integração.

Mais informações


Instalação

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

Uso

Métodos

  • createHarnessEnvironment(rootElement) - obtém uma instância de HarnessLoader a partir de um elemento fornecido (padrão para body)
  • getHarness(harnessType, element) - busca uma instância de harness a partir de uma classe ComponentHarness e elemento fornecidos
  • getHarness(harnessType) - busca uma instância de harness a partir de uma classe ComponentHarness fornecida
  • getHarness(query) - busca uma instância de harness a partir de um HarnessPredicate fornecido
  • getAllHarnesses(query) - age como getHarness, mas retorna um array de instâncias de harness
  • waitForAngular() - aguarda o Angular terminar o bootstrap

Exemplo

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

Mais exemplos aqui.

Desenvolvimento

Veja a documentação para desenvolvedores.

Contribuindo

> Quer ajudar?

Quer relatar um bug, contribuir com código ou melhorar a documentação? Excelente!

Mas, por favor, leia primeiro as diretrizes para contribuir, e aprenda sobre o processo de submissão, regras de codificação e mais.

> Código de Conduta

Por favor, leia e siga o Código de Conduta e me ajude a manter este projeto aberto e inclusivo.

Welcome! How can I help?

WebdriverIO AI Copilot