Сервис поддержки для тестовых оболочек компонентов Angular
@badisi/wdio-harness - это сторонний пакет, для получения дополнительной информации см. GitHub | npm
@badisi/wdio-harness
🔬 WebdriverIO поддержка для тестовых оболочек компонентов Angular.
Тестовые оболочки компонентов
Оболочка компонента - это класс, который позволяет тесту взаимодействовать с компонентом через поддерживаемый 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)
- ищет экземпляр оболочки из заданного класса ComponentHarnessgetHarness(query)
- ищет экземпляр оболочки из заданного HarnessPredicategetAllHarnesses(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');
});
});
Больше примеров здесь.
Разработка
См. документацию для разработчиков.
Участие в проекте
> Хотите помочь?
Хотите сообщить об ошибке, внести код или улучшить документацию? Отлично!
Но, пожалуйста, сначала ознакомьтесь с руководством по участию в проекте, узнайте о процессе подачи, правилах кодирования и многом другом.
> Кодекс поведения
Пожалуйста, прочитайте и следуйте Кодексу поведения и помогите мне сохранить этот проект открытым и инклюзивным.