Skip to content
Vitest 2
Main Navigation РуководствоAPIКонфигурацияРежим браузераПродвинутый
3.2.0
2.1.9
1.6.1
0.34.6

Русский

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

Русский

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

Внешний вид

Sidebar Navigation

Why Browser Mode?

Getting Started

Context API

Interactivity API

Locators

Assertion API

Commands API

Содержание страницы

API утверждений ​

Vitest включает библиотеку @testing-library/jest-dom, предоставляя широкий спектр готовых к использованию утверждений для DOM. Подробную документацию можно найти в файле 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

Если вы используете TypeScript или хотите иметь корректные типы в expect, убедитесь, что в вашем tsconfig указан либо @vitest/browser/providers/playwright, либо @vitest/browser/providers/webdriverio, в зависимости от выбранного провайдера. Если вы используете провайдер по умолчанию preview, вместо этого можно указать @vitest/browser/matchers.

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

Тесты в браузере могут давать нестабильные результаты из-за асинхронной природы. Поэтому важно гарантировать успешное выполнение проверок, даже если выполнение условия задерживается (например, из-за тайм-аута, сетевого запроса или анимации). Для этой цели Vitest предоставляет повторяемые утверждения, готовые к использованию, через API expect.poll и expect.element:

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

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

  // @testing-library предоставляет запросы со встроенной поддержкой повторных попыток
  // Он будет искать баннер до его отрисовки.
  const banner = page.getByRole('alert', {
    name: /error/i,
  });

  // Vitest предоставляет `expect.element` со встроенной поддержкой повторных попыток
  // Он будет проверять `element.textContent` до тех пор, пока его значение не станет "Error!"
  await expect.element(banner).toHaveTextContent('Error!');
});

TIP

expect.element - это сокращение от expect.poll(() => element) и работает точно так же.

toHaveTextContent и все другие утверждения @testing-library/jest-dom по-прежнему доступны в стандартном expect без встроенной поддержки повторных попыток:

ts
// сразу же завершится сбоем, если .textContent не равен `'Error!'`
expect(banner).toHaveTextContent('Error!');
Pager
Предыдущая страницаLocators
Следующая страницаCommands API

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team

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

Выпущено на условиях лицензии MIT.

Авторские права (c) 2021-Present Vitest Team