Skip to content
Vitest 2
Main Navigation LeitfadenAPIKonfigurationBrowser-ModusFortgeschritten
3.2.0
2.1.9
1.6.1
0.34.6

Deutsch

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

Deutsch

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

Aussehen

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

Auf dieser Seite

Assertion API ​

Vitest bündelt die Bibliothek @testing-library/jest-dom, um eine breite Palette von DOM-Assertions direkt zur Verfügung zu stellen. Eine detaillierte Dokumentation finden Sie in der jest-dom-README:

  • 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

Wenn Sie TypeScript verwenden und korrekte Typ-Hinweise in expect erhalten möchten, stellen Sie sicher, dass Sie je nach verwendetem Provider entweder @vitest/browser/providers/playwright oder @vitest/browser/providers/webdriverio in Ihrer tsconfig angeben. Wenn Sie den Standard-preview-Provider verwenden, können Sie stattdessen @vitest/browser/matchers angeben.

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

Tests im Browser können aufgrund ihrer asynchronen Natur inkonsistent fehlschlagen. Aus diesem Grund ist es wichtig, eine Möglichkeit zu haben, um sicherzustellen, dass Assertions erfolgreich sind, auch wenn die Bedingung verzögert eintritt (z. B. durch ein Timeout, eine Netzwerkanfrage oder eine Animation). Zu diesem Zweck bietet Vitest wiederholbare Assertions sofort über die APIs expect.poll und expect.element an:

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

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

  // @testing-library bietet Queries mit integrierter Wiederholungsfähigkeit
  // Es wird versuchen, das Banner zu finden, bis es gerendert ist
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest bietet `expect.element` mit integrierter Wiederholungsfähigkeit
  // Es wird `element.textContent` überprüfen, bis es gleich "Error!" ist
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element ist eine Kurzform für expect.poll(() => element) und funktioniert genau gleich.

toHaveTextContent und alle anderen @testing-library/jest-dom-Assertions sind weiterhin mit einem regulären expect ohne integrierten Wiederholungsmechanismus verfügbar:

ts
// schlägt sofort fehl, wenn .textContent nicht `'Error!'` ist
expect(banner).toHaveTextContent('Error!');
Pager
Vorherige SeiteLocators
Nächste SeiteCommands API

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team

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

Veröffentlicht unter der MIT-Lizenz.

Copyright (c) 2021-Present Vitest Team