Skip to content
Vitest 2
Main Navigation GuiaAPIConfiguraçãoModo NavegadorAvançado
3.2.0
2.1.9
1.6.1
0.34.6

Português – Brasil

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

Português – Brasil

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

Aparência

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

Nesta página

API de Asserção ​

O Vitest inclui a biblioteca @testing-library/jest-dom para fornecer uma ampla gama de asserções DOM prontas para uso. Para documentação detalhada, você pode ler o readme do 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 você estiver usando TypeScript ou quiser ter tipagem correta em expect, certifique-se de ter @vitest/browser/providers/playwright ou @vitest/browser/providers/webdriverio especificado em seu tsconfig, dependendo do provedor utilizado. Se você usar o provedor preview padrão, você pode especificar @vitest/browser/matchers em vez disso.

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

Testes no navegador podem falhar de forma inconsistente devido à sua natureza assíncrona. Por isso, é importante ter uma maneira de garantir que as asserções sejam bem-sucedidas mesmo que a condição seja atrasada (por um timeout, uma requisição de rede ou uma animação, por exemplo). Para este propósito, o Vitest fornece asserções com capacidade de retentativa prontas para uso através das APIs expect.poll e expect.element:

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

test('banner de erro é renderizado', async () => {
  triggerError();

  // @testing-library provides queries with built-in retry-ability
  // It will try to find the banner until it's rendered
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest provides `expect.element` with built-in retry-ability
  // It will check `element.textContent` until it's equal to "Error!"
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element é um atalho para expect.poll(() => element) e funciona da mesma forma.

toHaveTextContent e todas as outras asserções do @testing-library/jest-dom ainda estão disponíveis em um expect regular, sem um mecanismo de retentativa integrado:

ts
// irá falhar imediatamente se .textContent não for `'Error!'`
expect(banner).toHaveTextContent('Error!');
Pager
AnteriorLocators
PróximoCommands API

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team

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

Distribuído sob a Licença MIT.

Copyright (c) 2021-Present Vitest Team