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 アサーションを提供しています。詳細なドキュメントについては、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

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 は expect.poll および expect.element API を通じて、すぐに利用できるリトライ可能なアサーションを提供しています。

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ライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team

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

MITライセンス の下で公開されています。

Copyright (c) 2021-Present Vitest Team