ページ内ナビ
概要
React Testing Libraryは、React部品の内部状態ではなく、利用者が見る文言や役割を通して画面を操作・検証するライブラリです。部品の作り替えに耐えやすい試験を、DOM Testing Libraryの検索方法で記述できます。
特徴と向いている用途
実機検証あり(下記の環境・範囲に限定) · 内容確認日:
主な特徴
向いている用途
導入前の確認
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]testing-library/react-testing-library README at v16.3.3(2026-10-05)
- [2]React Testing Library official documentation(2026-10-05)
- [3]React Testing Library v16.3.3 source(2026-10-05)
- [4]testing-library/react-testing-library LICENSE at v16.3.3(2026-10-05)
- [5]testing-library/react-testing-library GitHub metadata(2026-10-05)
編集部からの補足
React部品を利用者に見える役割と操作で守りたい場合に適します。まず小さな状態更新を役割と表示名で検証し、実装固有のclass名や内部stateに依存していないか確認してください。
3ステップで試す
- 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
利用者操作を試すコードを書く
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
表示更新を検証する
Node.js上のJSDOMで実行し、利用者に見えるボタン文言がCount 1へ更新されることを確認します。
test "$(node demo.mjs)" = "Count 1"
成長
成長の推移 · 直近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で投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Next.js143,179 Stars
共通タグ 2件 · 同じ言語
Reactのrouting・rendering・server機能をまとめてフルスタックWebアプリを構築する
JavaScript - Emotion18,019 Stars
共通タグ 2件 · 同じ言語
object/string style・composition・themeをReactへ組み込む高性能CSS-in-JS library
JavaScript - PLANKA12,603 Stars
共通タグ 2件 · 同じ言語
board・list・card・comment・attachmentをrealtimeで共有するself-host Kanban/project tracker
JavaScript - react-i18next10,051 Stars
共通タグ 2件 · 同じ言語
i18nextのtranslation resourceをuseTranslation・Trans等でReact componentへ接続する公式binding
JavaScript - Carbon Design System9,521 Stars
共通タグ 2件 · 同じ言語
React components・Sass styles・design tokens・iconsを共通化し、IBM Design Languageに沿ったproduct UIを構築する
JavaScript - Onsen UI8,854 Stars
共通タグ 2件 · 同じ言語
Web Componentsを中心にiOS/Android風UIを同じHTML・JavaScriptから構築する
JavaScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。