Skip to content
Vitest 2
Main Navigation PrůvodceAPIKonfiguraceRežim prohlížečePokročilý
3.2.0
2.1.9
1.6.1
0.34.6

čeština

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
magyar

čeština

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
magyar

Vzhled

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

Na této stránce

Assertion API ​

Vitest obsahuje knihovnu @testing-library/jest-dom, která poskytuje širokou škálu DOM ověření ihned k dispozici. Podrobnou dokumentaci naleznete v souboru readme jest-dom:

  • toBeDisabled
  • toBeEnabled
  • toBeEmptyDOMElement
  • toBeInTheDocument
  • toBeInvalid
  • toBeRequired
  • toBeValid
  • toBeVisible
  • toContainElement
  • toContainHTML
  • toHaveAccessibleDescription
  • toHaveAccessibleErrorMessage
  • toHaveAccessibleName
  • toHaveAttribute
  • toHaveClass
  • toHaveFocus
  • toHaveFormValues
  • toHaveStyle
  • toHaveTextContent
  • toHaveValue
  • toHaveDisplayValue
  • toBeChecked
  • toBePartiallyChecked
  • toHaveRole
  • toHaveErrorMessage

Pokud používáte TypeScript nebo chcete mít správné typové hinty v expect, ujistěte se, že máte v tsconfig specifikováno buď @vitest/browser/providers/playwright nebo @vitest/browser/providers/webdriverio v závislosti na poskytovateli, kterého používáte. Pokud používáte výchozí poskytovatel preview, můžete místo toho specifikovat @vitest/browser/matchers.

json
{
  "compilerOptions": {
    "types": ["@vitest/browser/matchers"]
  }
}
json
{
  "compilerOptions": {
    "types": ["@vitest/browser/providers/playwright"]
  }
}
json
{
  "compilerOptions": {
    "types": ["@vitest/browser/providers/webdriverio"]
  }
}

Testy v prohlížeči mohou selhávat nepravidelně kvůli jejich asynchronní povaze. Z tohoto důvodu je důležité mít způsob, jak zajistit, že aserce budou úspěšné, i když je podmínka zpožděna (například timeoutem, síťovým požadavkem nebo animací). Pro tento účel Vitest poskytuje opakovatelná ověření ihned k dispozici prostřednictvím API expect.poll a expect.element:

ts
import { expect, test } from 'vitest';
import { page } from '@vitest/browser/context';

test('error banner is rendered', async () => {
  triggerError();

  // @testing-library poskytuje query s vestavěnou možností opakování
  // Bude se snažit najít banner, dokud nebude vykreslen
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest poskytuje `expect.element` s vestavěnou možností opakování
  // Bude kontrolovat `element.textContent`, dokud nebude mít hodnotu "Error!"
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element je zkratka pro expect.poll(() => element) a funguje přesně stejným způsobem.

toHaveTextContent a všechny ostatní aserce z @testing-library/jest-dom jsou stále k dispozici na běžném expect bez vestavěného mechanismu opakovatelnosti:

ts
// selže okamžitě, pokud .textContent není 'Error!'
expect(banner).toHaveTextContent('Error!');
Pager
Předchozí stránkaLocators
Další stránkaCommands API

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team

https://v2.vitest.dev/guide/browser/assertion-api

Vydáno pod licencí MIT.

Copyright (c) 2021-Present Vitest Team