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に2~8行目を追加します。1,9行目がない場合は1,9行目も追加します。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.jmockit/jmockit -->
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.44</version>
<scope>test</scope>
</dependency>
</dependencies>
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
関連の記事