LoginSignup
70
46

More than 3 years have passed since last update.

テストダブルをなんとなく理解する

Last updated at Posted at 2019-09-25

意味

Wikipediaを確認すると次の意味らしい

テストダブル (Test Double) とは、ソフトウェアテストにおいて、テスト対象が依存
しているコンポーネントを置き換える代用品のこと。ダブルは代役、影武者を意味する。

種類

そのテストダブルにも種類がある、どんなテストをするかでダブルの種類も違ってくる。
そんなに種類は多くないんですが覚えられないのでまとめます。

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

参考記事

70
46
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
70
46