意味
Wikipediaを確認すると次の意味らしい
テストダブル (Test Double) とは、ソフトウェアテストにおいて、テスト対象が依存
しているコンポーネントを置き換える代用品のこと。ダブルは代役、影武者を意味する。
種類
そのテストダブルにも種類がある、どんなテストをするかでダブルの種類も違ってくる。
そんなに種類は多くないんですが覚えられないのでまとめます。
種類 | 役割 | 具体例 |
---|---|---|
スタブ | テスト対象が依存コンポーネントを呼び出したときに取得できる値を用意する。 | 依存コンポーネントから取得できる値が変化したとき、 テスト対象の挙動がどう変化するか確認するテスト |
モック | テスト対象が依存コンポーネントを呼び出したときに与えた値を記録する。 | テスト対象が依存コンポーネントに入力した内容を検証するテスト |
スパイ | テスト対象が依存コンポーネントを呼び出したときに取得できる値を用意し、 さらに呼び出したときに与えた値を記録する。(スタブとモックの機能を持つ) |
テスト対象が既に実装された依存コンポーネントを呼び出した値や回数を検証するテスト |
フェイク | 実際のコンポーネント同様の動作をする。 テストを実行するための軽量化されたコンポーネントのこと |
データベースを使用するテストの場合、膨大な時間がかかる場合がある。 フェイクとして同機能をインメモリデータベースで実装しテストを高速化する。 |
ダミー | テストするメソッドには関係ないが、コンパイルを通すために必要なコンポーネント | テストに関係はないがコンストラクタに与える値が足りない、その値を埋めるために作成する。 |