Skip to content
Vitest 2
Main Navigation GuidaAPIConfigurazioneModalità BrowserAvanzato
3.2.0
2.1.9
1.6.1
0.34.6

Italiano

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

Italiano

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

Aspetto

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

In questa pagina

API di Asserzione ​

Vitest integra la libreria @testing-library/jest-dom per fornire un'ampia gamma di asserzioni DOM disponibili out-of-the-box. Per la documentazione dettagliata, puoi consultare il readme di 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

Se stai utilizzando TypeScript o desideri avere suggerimenti di tipo corretti in expect, assicurati di aver specificato @vitest/browser/providers/playwright o @vitest/browser/providers/webdriverio nel tuo tsconfig a seconda del provider utilizzato. Se usi il provider predefinito preview, puoi specificare invece @vitest/browser/matchers.

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

I test nel browser potrebbero fallire in modo non deterministico a causa della loro natura asincrona. Per questo motivo, è importante avere un modo per garantire che le asserzioni abbiano successo anche se la condizione è soggetta a ritardi (ad esempio, da un timeout, una richiesta di rete o un'animazione). A questo scopo, Vitest fornisce asserzioni ripetibili pronte all'uso tramite le API expect.poll e expect.element:

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

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

  // @testing-library fornisce query con funzionalità di riprova integrate
  // Proverà a trovare il banner finché non viene renderizzato
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest fornisce `expect.element` con funzionalità di riprova integrate
  // Verificherà `element.textContent` finché non sarà uguale a "Error!"
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element è una scorciatoia per expect.poll(() => element) e funziona esattamente allo stesso modo.

toHaveTextContent e tutte le altre asserzioni di @testing-library/jest-dom sono ancora disponibili su un normale expect senza un meccanismo di riprova integrato:

ts
// fallisce immediatamente se .textContent non è `'Error!'`
expect(banner).toHaveTextContent('Error!');
Pager
Pagina precedenteLocators
Pagina successivaCommands API

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team

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

Rilasciato sotto la licenza MIT.

Copyright (c) 2021-Present Vitest Team