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