スタブとドライバの違いです。
目次
説明 | スタブとは |
ドライバとは |
スタブとは
- テスト実行時に、呼び出し先が未完成等のときに代替として使用します。
- 値を返します。
- ダミー(本物に似ているが中身はないもの)です。
- 対象のコードから見て、スタブは下位にあたります。
- スタブ(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行目のインスタンスのメソッドを呼び出しています。
関連の記事