Java Mockitでテストするサンプル

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でカバレッジを取得するサンプル

△上に戻る