Java JMockitのテストのサンプル

JavaのJMockitのテストのサンプルです。
JUnit4の設定とテストコードの実行についてはJava JUnit4のテストのサンプルを参照願います。

確認環境
・eclipse4.8
・Java 8
・jmockit-1.43
・junit-4.12
・hamcrest-core-1.3

目次

1.JMockit

  • JUnitでモックオブジェクトを利用するためのライブラリです。
  • モックオブジェクトを使用して返り値をコントロールすることができます。
  • 対象のクラスが未完成または戻り値をコントロールしたい場合に使用します。
  • 以下は、jmockitのリンクです。
    http://jmockit.github.io/

2.jarファイルの取得

Maven

pom.xmlに以下を追加します。

<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.43</version>
    <scope>test</scope>
</dependency>

jarファイル

jarファイルは、MavenRepositoryのサイトにあります。
https://mvnrepository.com/artifact/org.jmockit/jmockit

Versionの1.4.3をクリックして、以下の図の「Files」の横にあるjarをクリックするとjarファイルをダウンロードできます。

 

Eclipseで、jarファイルをクラスパスに追加する場合は以下を参照願います。
Eclipse 外部jarファイルをクラスパス(ビルドパス)に設定する方法参照。

※ ビルドパスの読み込まれる順番は、JMockitのjarが先でJUnitのjarが後になるように設定します。

3.テストするコード

以下のクラスに対してテストします。
メソッドの戻り値はnullですが、JMockitを使用して文字列を返すようにします。

package test1;

public class Test1  {
	String runSample() {
		// 未実装
		return null;
	}
}

4.テストクラスのコード

テストクラスのコードです。

package test1;
import static org.junit.Assert.*;
import org.junit.Test;
import mockit.Expectations;
import mockit.Mocked;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
	@Mocked
    private Test1 test1;
	
	@Test
	public void testRunSample() {
		new Expectations() {{
			test1.runSample();result = "abcdef";
        }};
        Test1 s = new Test1();
		String a = s.runSample();
		assertThat(a, is("abcdef")); //assertThat(実際の値,is(期待の値))
	}
}

15行目はTest1クラスのrunSampleメソッドを実行すると文字列の"abcdef"を返すように設定しています。
→上記のTest1クラスの戻り値と異なっています。
17行目は、Test1クラスのインスタンスを生成しています。
18行目は、Test1クラスのメソッドを実行しています。本来であればnullが返るはずです。
19行目は、成功になります。15行目で設定した値が返っています。

 

補足

「java.lang.IllegalStateException: Native library for Attach API not available in this JRE」
「Caused by: java.lang.IllegalStateException: JMockit didn't get initialized; please check the -javaagent JVM initialization parameter was used」

テストコード実行時に上記のエラーが出る場合は以下の設定をすると実行できるようになりました。

1.Eclipseの「ウィンドウ」→「設定」→「Java」→「インストール済みのJRE」をクリックし、インストール済みのJREの一覧を表示します。
2.インストール済みのJREを選択して「編集」を押してJREの編集ダイアログを開きます。
3.「デフォルトのVM引数」に「-javaagent: 」とjmockitのパスを入力して完了を押します。
例:-javaagent:E:¥jar¥jmockit-1.43.jar

関連の記事

Java JUnit4のテストのサンプル
Java assertThatメソッドのサンプル

△上に戻る