Servicio de soporte para arneses de prueba de componentes Angular
@badisi/wdio-harness es un paquete de terceros, para más información consulte GitHub | npm
@badisi/wdio-harness
🔬 WebdriverIO soporte para arneses de prueba de componentes Angular.
Arneses de prueba de componentes
Un arnés de componente es una clase que permite a una prueba interactuar con un componente a través de una API compatible. La API de cada arnés interactúa con un componente de la misma manera que lo haría un usuario. Al usar la API del arnés, una prueba se aísla contra actualizaciones de los elementos internos de un componente, como cambiar su estructura DOM. La idea de los arneses de componentes proviene del patrón PageObject comúnmente utilizado para pruebas de integración.
Instalación
npm install @badisi/wdio-harness --save-dev
yarn add @badisi/wdio-harness --dev
Uso
Métodos
createHarnessEnvironment(rootElement)
- obtiene una instancia de HarnessLoader desde un elemento dado (por defecto es body)getHarness(harnessType, element)
- busca una instancia de arnés desde una clase ComponentHarness dada y un elementogetHarness(harnessType)
- busca una instancia de arnés desde una clase ComponentHarness dadagetHarness(query)
- busca una instancia de arnés desde un HarnessPredicate dadogetAllHarnesses(query)
- actúa como getHarness, pero devuelve un array de instancias de arnéswaitForAngular()
- espera a que Angular termine de inicializarse
Ejemplo
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');
});
});
Más ejemplos aquí.
Desarrollo
Consulte la documentación para desarrolladores.
Contribución
> ¿Quieres ayudar?
¿Quieres reportar un error, contribuir con código o mejorar la documentación? ¡Excelente!
Pero por favor, lee primero las directrices para contribuir, y aprende sobre el proceso de envío, las reglas de codificación y más.
> Código de Conducta
Por favor, lee y sigue el Código de Conducta y ayúdame a mantener este proyecto abierto e inclusivo.