Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フロントエンドの単体テストの使い方/考え方

 フロントエンドの単体テストの使い方/考え方

Tomoya Kashifuku

March 16, 2023
Tweet

More Decks by Tomoya Kashifuku

Other Decks in Programming

Transcript

  1. 種本(種記事) • 単体テストの考え方 /使い方(Vladimir Khorikov) • React でつくるフォーム UI の単体テストと

    TDD • testing-library でユーザの気持ちになって書くフロントエンドのテスト 3
  2. 「ユーザの動作」と「正しい応答」を分析する • ユーザの動作 ◦ 操作したい要素を見つける ◦ マウスのクリック ◦ キー入力をする •

    正しい応答 ◦ 要素を変化させる ▪ 特定の文字列が表示される /非表示になる ▪ 入力要素がフォーカスされている ◦ API にリクエストを送る / callback 関数を実行する 14
  3. 要素を見つけるクエリ testing-library は要素を見つけるためのクエリ を提供している。
 クエリには優先順位がついていて、優先順位が高いほど「ソフトウェアの使用方法に似た」テストを作れる傾向に ある (*1)。
 
 • getByRole


    • getByLabelText
 • getByPlaceholderText 
 • getByText
 • getByAltText
 • getByTitle
 • getByTestId
 16 *1 実装の方針によっては優先順位が低いクエリを使ったほうがいいケースもある。 優先度が高い 低い
  4. まとめ フロントエンドのテストは単体テストだけではなく VRT や E2E テストもある。 フロントエンドの単体テストで確認したいのは ユーザの動作に対する正しい応答 。 ユーザの動作に対する正しい応答を検査するようなテストでは、

    testing-library をうまく使う必要があ る。使う前にツールの思想を理解するとよい。 テストをうまく運用するためには、テストの目的を明確にすることが大切。 フロントエンドのテストよりも前に アクセシビリティのガイドラインがあると方針を立てやすい 31