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.
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.
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 fornecidosgetHarness(harnessType)
- busca uma instância de harness a partir de uma classe ComponentHarness fornecidagetHarness(query)
- busca uma instância de harness a partir de um HarnessPredicate fornecidogetAllHarnesses(query)
- age como getHarness, mas retorna um array de instâncias de harnesswaitForAngular()
- 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.