Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
React Testing Library の Query について整理してみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
takf
January 27, 2022
Technology
560
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React Testing Library の Query について整理してみた
takf
January 27, 2022
More Decks by takf
See All by takf
Go未経験・MVC脳のエンジニアが オニオンアーキテクチャを学ぶまで
takfjp
0
39
見やすい PRを作るために取り組んでいること
takfjp
0
56
Denoに入門していきなりAleph.jsを触ってみた
takfjp
0
550
Atomic Design とテストの○○な話
takfjp
2
2k
Node.jsのアップグレードで気をつけたこと
takfjp
1
3k
FARM スタックに触れてみる
takfjp
0
1.7k
React.js 消えるライフサイクルメソッドについて
takfjp
0
170
Laravel 初めての業務で遭遇したハマりポイント×2
takfjp
2
3.2k
React で Stateless Functional Component の書き方を盛大に間違えていた話
takfjp
0
460
Other Decks in Technology
See All in Technology
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
330
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
180
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
240
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
560
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
870
KPIだけでは評価できないプロダクトが考えるべき Evalsという第二の評価系 / Beyond KPIs: Evals as a Second Evaluation Framework for Products #PdEConf
aki_iinuma
1
2.2k
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
0
1.2k
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
1
830
Master Dataグループ紹介資料
sansan33
PRO
1
4.9k
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
110
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
180
指示待ちから変化に応じるClaude Codeへ!~環境からAgentへの帰り道を作る~
gotalab555
9
1.8k
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
500
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
550
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Un-Boring Meetings
codingconduct
0
400
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Spectacular Lies of Maps
axbom
PRO
1
960
Google's AI Overviews - The New Search
badams
0
1.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
640
How to train your dragon (web standard)
notwaldorf
97
6.8k
From π to Pie charts
rasagy
0
350
Music & Morning Musume
bryan
47
7.4k
Transcript
React Testing Library の Query に ついて整理してみた 2022.01.27 フロントエンドLT Vol.1
【オンライン】 @takfjp
自己紹介 Takeru Furuichi (@takfjp) コネヒト株式会社 所属 「ママリ」という出産・育児領域のサービスを開発・運営してい ます フロント: React
バックエンド: CakePHP
None
みなさんフロントエンドのテスト 書いてますか?
使っているテストツールは? Jest / testing-library / cypress etc...
今回は Testing Library のクエリの 使用方法についてまとめてみました
testing-library で要素を get する方法 screen.getByXXX -> で要素の有無を判定
使い始めの頃 test-id で要素を get するの楽ちん expect(screen.getByTestId('Hoge')).toBeInTheDocument() 全部これ使えばええやん!
そう思っていた時期がありました
しかし、優先順位が決められている
Queries Accessible to Everyone getByRole ARIA で定められたRole に基づいて要素を特定する Role はHTML
要素(DOM) に結びついているため、目視できるText などよりも確実に要素を取得することに適している アクセシビリティの観点から、全てのユーザーがアクセスできる ように定められているので使用時の優先度が高い button, checkbox, option など getByRole('button', {name: /submit/i}) [submit] というボタンを見つけることができる
こんな場合でも使える <h1> Hello <p>World</p> </h1> screen.getByText('Hello World') -> NG screen.getByRole('heading',
{name: 'Hello World'}) -> OK
Queries Accessible to Everyone 2 getByLabelText フォームフィールドをGet するときに適している。 ユーザーはラベルテキストを頼りにWeb サイトのフォームの要素
を見つけるため、フォームの要素をGet するときに優先されるべ き、とある getByPlaceholderText Label の代わりにはならないが、Placeholder が用意されているな ら特定に使う要素に優先した方がよい
getByText <p> <div> <span> などRole を持たない要素の中身を取得したい ときに使う Button に書いてある文言が上記のタグとかぶっていない時にも使 える
getByDisplayValue input 要素内に入力されたテキストをGet する時に使う
Semantic Queries HTML5 およびARIA 準拠のセレクター getByAltText img, area, input など
alt 属性が付与可能な要素を取り出す時に使 用できる 特に img に対して使う頻度が多いのでは? getByTitle SVG の中に埋め込まれたタイトル要素を使う時に重宝する
test-id (getByTestId) getByRole, getByText など用意された手段が全て使えない時の最終 手段 test のためだけに用意された属性であり、セマンティクスの重要性 が低いため濫用することは推奨されていない Role
やText で一致できない場合 = <p> タグなどで必ず出現するが、 中身のテキストが動的で常に特定しづらい場合 <p data-test-id="Fetched_Text">{result.text}</p>
雑感 フロントエンドテストを書く時はDOM のセマンティクスやアクセ シビリティも意識して書いていきたい しかし確実に要素の有無を判定したいシチュエーションはまだまだ ある 優先度順に試しつつ適宜 test-id もうまく使っていきたい
We're Hiring! https://connehito.com/recruit/
Thank you!
None