پرش به محتوای اصلی

سرویس پشتیبانی از تست هارنس‌های کامپوننت 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