35
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【React】テスト実装で抑えておきたい"Testing Trophy"について超簡単に解説する

Last updated at Posted at 2023-07-19

はじめに

Reactが公式で推奨しているReact Testing Libraryというテスト用のライブラリがあります。

このライブラリは Testing Trophy という考え方に基づいて開発されており、Reactのテスト方針を考えるにあたってぜひとも抑えておきたい内容になります。

本記事ではこの Testing Trophy について、簡潔に解説していきます。

Testing Trophyとは

React Testing Libraryの開発者であるKent C. Dodds氏が提唱している、どのテストを重視すべきであるかをトロフィーの形で表現した考え方のことを指します。

テストの種類

Testing Trophyでは、テストは次の4種類に分けられます。

  • 静的テスト(Static)
    • コードを作成するときにタイプミスや入力エラーを検出するテスト
  • 単体テスト(Unit)
    • 個々の独立した部品が期待通りに動作することを確認するテスト
  • 結合テスト(Integration)
    • 複数の部品が調和して動作することを確認するテスト
  • E2Eテスト(End to End)
    • ユーザーのように振る舞うロボットがアプリをクリックしていき、正しく機能するかを確認するテスト

トロフィーの見方

トロフィーは下図のように表現され、下から上に進むにつれて

  • 開発コストが大きくなる
  • テストの実装速度が遅くなる
  • ソフトウェアの信頼性が高まる

という特徴を持ちます。

重要なのは、コスト/速度信頼性のトレードオフであり、トレードオフのバランスが優れているほどトロフィー内の体積が大きく表現されております。

DVUoM94VQAAzuws.jpeg

結論

Testing Trophyでは、Integrationが最もコスト/速度信頼性のバランスに優れており、テスト実装の労力の大半はここに費やすべきであると結論づけられております。

React Testing LibraryもIntegrationの実装を重視した設計となっているので、Reactアプリのテスト方針を考える際には、この点を意識しておきたいです。

最後に

今回はTesting Trophyについて、重要なポイントを簡潔にまとめて解説しました。
参考にしたKent氏の記事は最後に記載しておくので、興味があれば是非こちらも確認してみてください。

以上

参考文献

35
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?