JavaのMockitでテストするサンプルです。
確認環境 (Eclipse4.8、Java 8、mockit-1.10.19、junit-4.12)
JUnit4の設定とテストコードの実行についてはJava JUnit4の使い方とテストのサンプルを参照願います。
目次 | Mockitとは / Mockitを取得する |
今回のプロジェクトのファイル | |
テストするコード | |
mockitでモックとスタブを作成する(テストクラス) |
Mockitとは
- モックやスタブを作成できるライブラリです。
- 以下は、mockitのリンクです。
https://site.mockito.org/
Mockitを取得する
Mavenで取得
pom.xmlに2~8行目を追加します。1,9行目がない場合は1,9行目も追加します。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
</dependencies>
jarファイルで取得
jarファイルは、MavenRepositoryのサイトにあります。
https://mvnrepository.com/artifact/org.mockito/mockito-all/1.10.19
以下の図の「Files」の横にあるjarをクリックするとjarファイルをダウンロードできます。
取得したjarファイルをクラスパスに追加します。
Eclipse jarファイルをクラスパスに設定する方法
今回のプロジェクトのファイル
今回のプロジェクトのファイルは以下のとおりです。
テストするコード
以下のクラスに対してテストします。
package test1;
public class Color {
String getName(String a) {
// 未実装
return null;
}
}
メソッドの戻り値はnullです。
mockitでモックとスタブを作成する(テストクラス)
モックとスタブを作成します。
package test1;
import org.junit.Test;
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
public class ColorTest {
@Test
public void test1() {
//モックを作成
Color c1 = mock(Color.class);
c1.getName("色は");
verify(c1).getName("色は");
// スタブを作成
when(c1.getName("色は")).thenReturn("色は赤です");
String t1 = c1.getName("色は");
assertThat(t1,is("色は赤です"));
}
@Test
public void test2() {
//モックを作成
Color c1 = mock(Color.class);
when(c1.getName(null)).thenReturn("nullです");
String t1 = c1.getName(null);
assertThat(t1,is("nullです"));
}
}
11,25行目は、mockでColorクラスのモックを作成します。
14行目は、verifyで引数が「色は」であることを確認しています。引数が異なっているとエラーになります。
17,27行目は、whenでスタブを作成しています。getNameメソッドの引数が指定の値の場合、thenReturnの引数の値が戻ります。
assertThatの構文は以下のとおりです。
assertThat(実際の値,is(期待の値)) |
テストの結果が想定どうりの場合は、緑色の帯が表示され、失敗は0で表示されます。
関連の記事
Java JUnit4の使い方とテストのサンプル
Java assertThatメソッドのサンプル
Java JMockitを使用するサンプル
Java Eclipseでカバレッジを取得するサンプル