Context API
Vitest zpřístupňuje kontextový modul prostřednictvím vstupního bodu @vitest/browser/context
. Od verze 2.0 nabízí několik užitečných nástrojů, které mohou být nápomocné při testování.
userEvent
TIP
API userEvent
je podrobně vysvětleno v Interactivity API.
/**
* Handler uživatelských interakcí. Podpora je implementována poskytovatelem prohlížeče (`playwright` nebo `webdriverio`).
* Pokud se použije s poskytovatelem `preview`, přepne se na simulované události prostřednictvím `@testing-library/user-event`.
* @experimental
*/
export const userEvent: {
setup: () => UserEvent;
cleanup: () => Promise<void>;
click: (element: Element, options?: UserEventClickOptions) => Promise<void>;
dblClick: (
element: Element,
options?: UserEventDoubleClickOptions
) => Promise<void>;
tripleClick: (
element: Element,
options?: UserEventTripleClickOptions
) => Promise<void>;
selectOptions: (
element: Element,
values: HTMLElement | HTMLElement[] | string | string[],
options?: UserEventSelectOptions
) => Promise<void>;
keyboard: (text: string) => Promise<void>;
type: (
element: Element,
text: string,
options?: UserEventTypeOptions
) => Promise<void>;
clear: (element: Element) => Promise<void>;
tab: (options?: UserEventTabOptions) => Promise<void>;
hover: (element: Element, options?: UserEventHoverOptions) => Promise<void>;
unhover: (element: Element, options?: UserEventHoverOptions) => Promise<void>;
fill: (
element: Element,
text: string,
options?: UserEventFillOptions
) => Promise<void>;
dragAndDrop: (
source: Element,
target: Element,
options?: UserEventDragAndDropOptions
) => Promise<void>;
};
commands
TIP
Toto API je podrobně vysvětleno v Commands API.
/**
* Dostupné příkazy pro prohlížeč.
* Zkratka pro `server.commands`.
*/
export const commands: BrowserCommands;
page
Export page
poskytuje nástroje pro interakci s aktuální stránkou (page
).
WARNING
Ačkoli poskytuje některé nástroje z Playwrightovy page
, není to tentýž objekt. Jelikož se kontext prohlížeče vyhodnocuje přímo v prohlížeči, vaše testy nemají přístup k objektu page
Playwrightu, protože ten běží na serveru.
Použijte Commands API, pokud potřebujete mít přístup k objektu Playwrightovy page
.
export const page: {
/**
* Změní velikost zobrazení iframe.
*/
viewport(width: number, height: number): Promise<void>;
/**
* Pořídí snímek obrazovky testovacího iframe nebo konkrétního elementu.
* @returns Cesta k souboru snímku obrazovky, nebo cesta a řetězec base64.
*/
screenshot(
options: Omit<ScreenshotOptions, 'base64'> & { base64: true }
): Promise<{
path: string;
base64: string;
}>;
screenshot(options?: ScreenshotOptions): Promise<string>;
/**
* Rozšíří výchozí objekt `page` o vlastní metody.
*/
extend(methods: Partial<BrowserPage>): BrowserPage;
/**
* Zabalí HTML prvek jako `Locator`. Při dotazování na elementy bude vyhledávání vždy vracet právě tento element.
*/
elementLocator(element: Element): Locator;
/**
* API pro lokátory. Další podrobnosti naleznete v příslušné dokumentaci.
*/
getByRole(role: ARIARole | string, options?: LocatorByRoleOptions): Locator;
getByLabelText(text: string | RegExp, options?: LocatorOptions): Locator;
getByTestId(text: string | RegExp): Locator;
getByAltText(text: string | RegExp, options?: LocatorOptions): Locator;
getByPlaceholder(text: string | RegExp, options?: LocatorOptions): Locator;
getByText(text: string | RegExp, options?: LocatorOptions): Locator;
getByTitle(text: string | RegExp, options?: LocatorOptions): Locator;
};
TIP
API getBy*
je podrobně vysvětleno v Locators API.
UPOZORNĚNÍ 3.2.0+
Upozorňujeme, že screenshot
vždy vrátí řetězec base64, pokud je save
nastaveno na false
. V takovém případě je path
ignorována.
cdp
Export cdp
vrací aktuální relaci protokolu Chrome DevTools. Je to užitečné především pro autory knihoven k vytváření nástrojů, které na něm staví.
WARNING
Relace CDP funguje pouze s poskytovatelem playwright
a výhradně při použití prohlížeče chromium
. Více si o tom můžete přečíst v dokumentaci Playwrightu k CDPSession
.
export const cdp: () => CDPSession;
server
Export server
představuje prostředí Node.js, ve kterém běží server Vitest. Je to užitečné především pro ladění nebo pro omezení vašich testů na základě prostředí.
export const server: {
/**
* Platforma, na níž běží server Vitest.
* Odpovídá volání `process.platform` na serveru.
*/
platform: Platform;
/**
* Verze běhového prostředí serveru Vitest.
* Odpovídá volání `process.version` na serveru.
*/
version: string;
/**
* Název poskytovatele prohlížeče.
*/
provider: string;
/**
* Název aktuálního prohlížeče.
*/
browser: string;
/**
* Dostupné příkazy pro prohlížeč.
*/
commands: BrowserCommands;
/**
* Serializovaná konfigurace testu.
*/
config: SerializedConfig;
};