OSS探訪GitHubでログイン

役割や表示名からReact画面を操作し、利用者に見える振る舞いを検証するDOM試験ライブラリ

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
19,660
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/08/27
ページ内ナビ

概要

React Testing Libraryは、React部品の内部状態ではなく、利用者が見る文言や役割を通して画面を操作・検証するライブラリです。部品の作り替えに耐えやすい試験を、DOM Testing Libraryの検索方法で記述できます。

特徴と向いている用途

実機検証あり(下記の環境・範囲に限定) · 内容確認日:

主な特徴

何を検証できるか

renderで部品をDOMへ配置し、screen.getByRoleなどで操作対象を探せます。fireEventはDOMイベントを送り、非同期更新にはfindByやwaitForを使えます。

出典:[1][2][3]

向いている用途

どの試験に合うか

ボタン、フォーム、ダイアログなど、アクセシブルな名前と利用者操作を契約としてReact部品を試験したい場合に向きます。固定例はCount 0を押し、Count 1への更新を確認します。

出典:[1][2]

導入前の確認

実行前に確認する点

16.3.3はNode.js 18以上、React 18または19、@testing-library/dom 10系を要求します。JSDOMはブラウザーの全機能や配置計算を再現しないため、必要に応じて実ブラウザー試験も併用します。LICENSEはMITです。

出典:[3][4][5]

16.3.3 / macOS, Node.js 24.18.0, isolated npm project with JSDOM 27.0.0

Rendered a counter, clicked it by role and accessible name, and verified the visible output Count 1.

参考にした公式資料

  1. [1]testing-library/react-testing-library README at v16.3.3(2026-10-05)
  2. [2]React Testing Library official documentation(2026-10-05)
  3. [3]React Testing Library v16.3.3 source(2026-10-05)
  4. [4]testing-library/react-testing-library LICENSE at v16.3.3(2026-10-05)
  5. [5]testing-library/react-testing-library GitHub metadata(2026-10-05)
編集部からの補足

React部品を利用者に見える役割と操作で守りたい場合に適します。まず小さな状態更新を役割と表示名で検証し、実装固有のclass名や内部stateに依存していないか確認してください。

3ステップで試す

  1. 1

    固定版のDOM試験環境を作る

    この検証用JSDOM 27.0.0にはNode.js 20以上とnpmが必要です。React Testing Library 16.3.3自体の要件はNode.js 18以上です。一時ディレクトリに固定版を導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/react-testing-library.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact @testing-library/react@16.3.3 @testing-library/dom@10.4.1 react@19.2.0 react-dom@19.2.0 jsdom@27.0.0
  2. 2

    利用者操作を試すコードを書く

    Count 0ボタンを役割と表示名で探して押し、再び役割からCount 1を探すコードを書きます。

    printf '%s\n' 'import {JSDOM} from '\''jsdom'\''' 'const dom=new JSDOM('\''<!doctype html><html><body></body></html>'\'')' 'globalThis.window=dom.window;globalThis.document=dom.window.document' 'Object.defineProperty(globalThis,'\''navigator'\'',{value:dom.window.navigator,configurable:true})' 'globalThis.HTMLElement=dom.window.HTMLElement;globalThis.Node=dom.window.Node' 'const React=await import('\''react'\'')' 'const {render,screen,fireEvent,cleanup}=await import('\''@testing-library/react'\'')' 'function Counter(){const [count,setCount]=React.useState(0);return React.createElement('\''button'\'',{onClick:()=>setCount(n=>n+1)},`Count ${count}`)}' 'render(React.createElement(Counter))' 'fireEvent.click(screen.getByRole('\''button'\'',{name:'\''Count 0'\''}))' 'console.log(screen.getByRole('\''button'\'',{name:'\''Count 1'\''}).textContent)' 'cleanup()' > demo.mjs
  3. 3

    表示更新を検証する

    Node.js上のJSDOMで実行し、利用者に見えるボタン文言がCount 1へ更新されることを確認します。

    test "$(node demo.mjs)" = "Count 1"
公式READMEで確認

成長

成長の推移 · 直近30日

19,660 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
19

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

カテゴリ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • reactjs
  • testing
  • javascript
Stars
19,660
Forks
1,169
Watchers
143
Open Issues
63
Contributors
168
所有者種別
Organization
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/08/27

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?