The source code for this blog is available on GitHub.

Blog.

Testを学ぶ

Cover Image for Testを学ぶ

合計時間:67時間 作業時間:3時間

まだ、全体的に良く分かっていない。 テストの全体像を把握するには、関係性というよりも段階を考えるべきだ。

目的理解

react-testing-library

Reactのテストライブラリを比較する - react-test-renderer, enzyme, react-testing-library

登場人物

  • jest
    • Unit Tests + Integration Tests
  • react-test-renderer
    • スナップショットテスト
  • Enzyme
    • Reactでのユニットテストを助けてくれるテストユーティリティツール
  • Testing Library
    • ユーザーが実際に操作するイベントに沿ってテストする

用語

  • アサーション(ライブラリ)
  • スナップショットテスト(リグレッションテスト)
  • Unit Tests
  • Integration Tests

アサーション

プログラミング言語などの仕様・機能の一つで、プログラムの前提として満たされるべき条件を記述し、実行時にそれが満たされていない場合にエラーや例外を発生させたり、メッセージを表示して処理を中断したりする機能。

リグレッションテスト

プログラムの一部分を変更したことで、ほかの箇所に不具合が出ていないかを確認するためのテストです。 「回帰テスト」「退行テスト」とも呼ばれており、プログラムの修正後にこれらのテストをもう一度行って不具合がないかを検証します。

スナップショットテスト

スナップショットテストでは、テストの対象になっている関数の出力をスナップショットとして保存し、コードの変更によってスナップショットに変更が生じているかどうかを検出(テスト)します。

Unit Tests

単体テスト。コンピュータプログラミングにおいて単体テストあるいはユニットテストとは、ソースコードの個々のユニット、すなわち、1つ以上のコンピュータプログラムモジュールが使用に適しているかどうかを決定するために、関連する制御データ、使用手順、操作手順とともにテストする手法である。

Intergration Tests

統合テスト。個々のソフトウェアモジュールを組み合わせてグループとしてテストするソフトウェアテストのフェーズです。統合テストは、システムまたはコンポーネントが指定された機能要件に準拠しているかどうかを評価するために行われます。単体テストの後、検証テストの前に発生します。

フェーズによって、テストの分類があるイメージなんかな。 段階・目的・方法で選別できる

| 段階 | | ---------- | | ユニットテスト | | インテグレーションテスト |

| 目的 | | ---------- | | リグレッションテスト |

| 方法 | | ---------- | | スナップテスト | | アサーション |

テストを分類してみよう!

モック スタブ

チュートリアル

tutorial-react react-testing-library

Introduction to the React Testing Library


More Stories