スタブとドライバの違い

スタブとドライバの違いです。

目次

説明 スタブとは
  ドライバとは

スタブとは

  • テスト実行時に、呼び出し先が未完成等のときに代替として使用します。
  • 値を返します。
  • ダミー(本物に似ているが中身はないもの)です。
  • 対象のコードから見て、スタブは下位にあたります。
  • スタブ(stub)は、切り株という意味です。
  • 似ている概念としてモックがあります。モックはスタブよりも上位の機能の位置づけです。
    スタブ:値を返す
    モック:値を返す+α
    Java JMockitを使用するサンプル

コードとスタブのイメージ

以下は、テストする対象のサンプルイメージのコードです。(Javaです)

package test1;

public class Class1 {
	String getName(){
		Stub s1 = new Stub();
		return s1.getName() + "です"; // 赤です
	}
}

5行目は、インスタンスを生成しています。
6行目は、5行目のインスタンスのメソッドを呼び出しています。

スタブ

呼ばれる側のスタブのコードのイメージです。

package test1;

public class Stub {
	String getName(){
		return "赤";
	}
}

4行目は、値を返すメソッドです。

ドライバとは

  • テスト実行時に、呼び出し元が未完成等のときに代替として使用します。
  • ダミー(本物に似ているが中身はないもの)です。
  • 対象のコードから見て、ドライバは上位にあたります。
  • ドライバ(driver)は、運転手という意味です。
  • JUnitなどのツールを使用してコードを呼び出すイメージです。

コードとドライバのイメージ

以下は、テストする対象のサンプルイメージのコードです。(Javaです)

package test1;

public class Class1 {
	int plusOne(int a){
		return a + 1;
	}
}

このメソッドをドライバで呼び出します。

ドライバ

呼び出す側のドライバのコードのイメージです。

package test1;

public class Driver  {
	public static void main(String[] args) {
		Class1 c1 = new Class1();
		System.out.println(c1.plusOne(1)); // 2
		System.out.println(c1.plusOne(2)); // 3
		System.out.println(c1.plusOne(3)); // 4
 	}
}

5行目は、テストする対象のインスタンスを生成しています。
6行目以降は、5行目のインスタンスのメソッドを呼び出しています。

関連の記事

Java JUnit4の使い方とテストのサンプル
Java Mockitでテストするサンプル

△上に戻る