Java JMockitのテストのサンプル

JavaのJMockitのテストのサンプルです。

実行環境
・eclipse4.6
・jmockit-1.30
・junit-4.12
・hamcrest-core-1.3

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

JMockitについて

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

1.jarファイルの取得

下記のサイトからjmockit-1.30.zipをダウンロードします。

jmockitのサイト
http://jmockit.org/

ダウンロードしたzipを展開し以下のファイルを任意の場所に配置します。
jmockit.jar

2.jarファイルをクラスパス(ビルドパス)に追加

jmockit.jarをクラスパスに追加します。
クラスパスに追加する手順は、
Eclipse 外部のjarファイルを使うためのクラスパス(ビルドパス)の設定手順参照。
※ビルドパスの読み込まれる順番は、JMockitのjarが先でJUnitのjarが後になるように設定します。

3.テストクラスの作成

通常のコード(テストされる側)に対するテストクラスを作成します。
サンプルとしてテストクラスと通常のコード(テストされる側)があります。

テストクラス

package test1;

import static org.junit.Assert.*;

import org.junit.Test;

import mockit.Mock;
import mockit.MockUp;

import static org.hamcrest.CoreMatchers.*;

public class Test1Test {

	@Test
	public void testSyoriA() {
		new MockUp<Sample>() {
			@Mock()
			public String runSample() {
				return "1"; // 1を返すように設定
			}
		};

		Sample s = new Sample();
		String a = s.runSample();
		assertThat(a, is("1")); // assertThat(実際の値、is(予想の値)) 成功する
	}

	@Test
	public void testSyoriB() {
		new MockUp<Sample>() {
			@Mock()
			public String runSample() {
				return "2"; // 2を返すように設定
			}
		};

		Sample s = new Sample();
		String a = s.runSample();
		assertThat(a, is("2")); // assertThat(実際の値、is(予想の値)) 成功する
	}
}

通常のコード(テストされる側)

以下がテストされる側のコードです。

package test1;

/**
 * サンプル
 */
class Sample {
	String runSample() {
		// 未実装
		return null;
	}
}

public class Test1 {
	public static void main(String[] args) {
		Sample s = new Sample();
		System.out.println(s.runSample());		//結果はnull
	}
}

4.補足

テストコード実行時に「java.lang.IllegalStateException: Native library for Attach API not available in this JRE」のエラーが出る場合は以下の設定をします。
1.Eclipseの「ウィンドウ」>「設定」>「Java」>「インストール済みのJRE」をクリックし、インストール済みのJREの一覧を表示します。
2.インストール済みのJREを選択して「編集」を押してJREの編集ダイアログを開きます。
3.「デフォルトのVM引数」に「-javaagent: 」とjmockitのパスを入力して完了を押します。
例:-javaagent:D:¥jar¥jmockit.jar

関連の記事

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




△上に戻る