Skip to content
Vitest 2
Main Navigation GuideAPIConfigurationMode NavigateurAvancé
3.2.0
2.1.9
1.6.1
0.34.6

Français

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

Français

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

Apparence

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

Sur cette page

API d'assertions ​

Vitest intègre la bibliothèque @testing-library/jest-dom pour offrir une large gamme d'assertions DOM prêtes à l'emploi. Pour une documentation détaillée, veuillez consulter le fichier README de 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

Si vous utilisez TypeScript ou si vous souhaitez bénéficier de suggestions de types précises dans expect, assurez-vous d'avoir spécifié @vitest/browser/providers/playwright ou @vitest/browser/providers/webdriverio dans votre tsconfig en fonction du fournisseur que vous utilisez. Si vous utilisez le fournisseur par défaut preview, vous pouvez spécifier @vitest/browser/matchers à la place.

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

Les tests dans le navigateur peuvent parfois échouer de manière non déterministe en raison de leur nature asynchrone. Il est donc important de disposer d'un mécanisme pour garantir que les assertions réussissent même si la condition est retardée (par un délai d'attente, une requête réseau ou une animation, par exemple). À cette fin, Vitest propose des assertions avec mécanisme de réessai intégré via les API expect.poll et expect.element :

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

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

  // @testing-library fournit des requêtes avec un mécanisme de réessai intégré.
  // Il tentera de trouver la bannière jusqu'à ce qu'elle soit rendue.
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest fournit `expect.element` avec un mécanisme de réessai intégré.
  // Il vérifiera que `element.textContent` est égal à "Error!".
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element est un raccourci pour expect.poll(() => element) et fonctionne exactement de la même manière.

toHaveTextContent et toutes les autres assertions @testing-library/jest-dom sont toujours disponibles sur un expect standard sans mécanisme de réessai intégré :

ts
// échouera instantanément si .textContent n'est pas `'Error!'`
expect(banner).toHaveTextContent('Error!');
Pager
Page précédenteLocators
Page suivanteCommands API

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team

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

Publié sous la licence MIT.

Copyright (c) 2021-Present Vitest Team