Перейти к основному содержимому

Сервис поддержки для тестовых оболочек компонентов Angular

@badisi/wdio-harness - это сторонний пакет, для получения дополнительной информации см. GitHub | npm

@badisi/wdio-harness

🔬 WebdriverIO поддержка для тестовых оболочек компонентов Angular.

npm versionnpm donwloadslicense

build statusPRs welcome


Тестовые оболочки компонентов

Оболочка компонента - это класс, который позволяет тесту взаимодействовать с компонентом через поддерживаемый API. API каждой оболочки взаимодействует с компонентом так же, как это делал бы пользователь. Используя API оболочки, тест защищает себя от обновлений внутренних механизмов компонента, таких как изменение его DOM-структуры. Идея оболочек компонентов происходит из шаблона PageObject, широко используемого для интеграционного тестирования.

Подробнее


Установка

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

Использование

Методы

  • createHarnessEnvironment(rootElement) - получает экземпляр HarnessLoader из заданного элемента (по умолчанию - body)
  • getHarness(harnessType, element) - ищет экземпляр оболочки из заданного класса ComponentHarness и элемента
  • getHarness(harnessType) - ищет экземпляр оболочки из заданного класса ComponentHarness
  • getHarness(query) - ищет экземпляр оболочки из заданного HarnessPredicate
  • getAllHarnesses(query) - действует как getHarness, но возвращает массив экземпляров оболочки
  • waitForAngular() - ожидает завершения загрузки Angular

Пример

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

Больше примеров здесь.

Разработка

См. документацию для разработчиков.

Участие в проекте

> Хотите помочь?

Хотите сообщить об ошибке, внести код или улучшить документацию? Отлично!

Но, пожалуйста, сначала ознакомьтесь с руководством по участию в проекте, узнайте о процессе подачи, правилах кодирования и многом другом.

> Кодекс поведения

Пожалуйста, прочитайте и следуйте Кодексу поведения и помогите мне сохранить этот проект открытым и инклюзивным.

Welcome! How can I help?

WebdriverIO AI Copilot