メインコンテンツへスキップ

Angularコンポーネントテストハーネスのサポートサービス

@badisi/wdio-harnessはサードパーティのパッケージです。詳細については、GitHub | npmを参照してください。

@badisi/wdio-harness

🔬 AngularコンポーネントテストハーネスのWebdriverIOサポート。

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) - 指定された要素(デフォルトはbody)からHarnessLoaderインスタンスを取得します
  • 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');
});
});

その他の例はこちらを参照してください。

開発

開発者向けドキュメントを参照してください。

貢献

> 協力しませんか?

バグを報告したり、コードを提供したり、ドキュメントを改善したりしたいですか?素晴らしい!

ただし、最初に貢献に関するガイドラインを読み、提出プロセス、コーディングルールなどを学んでください。

> 行動規範

行動規範を読み、それに従い、このプロジェクトをオープンで包括的なものにするのにご協力ください。

ようこそ!何かお手伝いできることはありますか?

WebdriverIO AI Copilot