Queries、Events、Assertions――Formと非同期UI
getBy/findBy query、入力やクリックのためのuser-event、jest-dom assertionを使います。formと非同期screenを自信を持ってテストします。
「Queries、Events、Assertions――Formと非同期UI」はCoddyKit上の無料React Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全3レッスンが含まれています。
ユーザー中心のテスト
目標:ユーザーのようにテストします。
- クエリ:getBy*/findBy*
- イベント:user-event(クリック、入力)
- アサーション:jest-dom
クエリ:適切なものを選ぶ
- getBy*:同期的に処理し、見つからない場合は失敗します
- findBy*:非同期に処理し、待機します
- queryBy*:見つからない場合はnullを返します
- テストIDよりもロール/ラベルを優先します
デモ:アクセシブルなログインフォーム
ラベルと送信ボタンを備えたフォームです。getByLabelText、getByRole、ユーザーによる入力のテストに適しています。
<div id="root"></div>
デモ:非同期リスト(読み込み → 項目)
非同期のfetchをシミュレーションし、ローダーを表示してから項目をレンダーします。テストではfindBy*またはwaitForを使用します。
<div id="root"></div>
アサーションとイベント
- toBeInTheDocument、toBeDisabled、toHaveTextContent
- 非同期UIにはfindBy*を使用します
- fireEventよりもuser-eventを優先します
パターンと注意点
パターン:
- 準備 → 実行(user-event) → 検証
- 非同期処理:await findBy*またはwaitFor
- 任意のタイムアウトは避け、テストを高速に保ちます
非同期アサーションのベストプラクティス
まとめ
まとめ:ロールやラベルによるクエリを優先し、user-eventでUIを操作して、jest-domでアサートします。非同期UIでは、findBy*をawaitするか、waitForでラップします。
よくある質問
「Queries、Events、Assertions――Formと非同期UI」レッスンは無料ですか?
はい。「Queries、Events、Assertions――Formと非同期UI」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全3レッスンが含まれています。
「Queries、Events、Assertions――Formと非同期UI」で何を学びますか?
getBy/findBy query、入力やクリックのためのuser-event、jest-dom assertionを使います。formと非同期screenを自信を持ってテストします。 ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
React Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「Queries、Events、Assertions――Formと非同期UI」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このReact Academyレッスンでコードを書いて実行できますか?
はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- React Testing Library + Vitest/Jestのセットアップ
- Queries、Events、Assertions――Formと非同期UI
- FetchとTimerのMock