Java JUnit4のテストのサンプル

JavaのJUnit4のjarファイルの入手からテストコードの実行までのサンプルです。

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

1.jarファイルの取得

下記のサイトからjunit-4.12.jarとhamcrest-core-1.3.jarをダウンロードします。

JUnit4のサイト
http://junit.org/junit4/
「Download and install」というリンクをクリックするとjarの置き場所に遷移します。

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

junit-4.12.jarとhamcrest-core-1.3.jarをクラスパスに追加します。
クラスパスに追加する手順は、
Eclipse 外部のjarファイルを使うためのクラスパス(ビルドパス)の設定手順参照。

3.テストクラスの作成

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

テストクラス

テストを行うメソッドごとに@Testアノテーションをつける必要があります。

package test1;

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
 
	@BeforeClass
	public static void beforeClass(){
        System.out.println("BeforeClass"); // テスト実行前に呼び出される
	}
	
	@AfterClass
	public static void afterClass(){
        System.out.println("AfterClass"); // テスト実行後に呼び出される
	}
	
	@Before
    public void beforeMethod() {
        System.out.println("beforeMethod"); // テストメソッド実行前に呼び出される
    }
 
    @After
    public void afterMethod() {
        System.out.println("afterMethod"); // テストメソッド実行後に呼び出される
    }
 
    //@Testをつける
	@Test
	public void test1() {
		System.out.println("test1");	 //
		Sample s = new Sample();
		String a = s.runSample();
		assertThat(a,is("a2"));		//assertThat(実際の値、is(予想の値)) 成功する
	}

	@Test
	public void test2() {
		System.out.println("test2");	 //
		Sample s = new Sample();
		String a = s.runSample();
		assertThat(a,is("a3"));		//assertThat(実際の値、is(予想の値)) 失敗する 
	}
}
アノテーション 説明
@Test テストメソッドの前につける
@BeforeClass テストの実行前に1度呼ばれる
@AfterClass テストの実行後に1度呼ばれる
@Before テストメソッド実行前に呼ばれる
@After テストメソッド実行後に呼ばれる

このサンプルではテストメソッドが2個あるので@Beforeと@Afterそれぞれ2回呼ばれます。
流れとしては、beforeClass()>beforeMethod() test1()afterMethod()> beforeMethod()test2()afterMethod()afterClass()となります。

比較するメソッドはassertEqualsではなく、Junit4.4で追加されたassertThatが推奨です。
・可読性が高くなる
・CoreMatchersのメソッドが使える
assertThatで使用するCoreMatchersのその他のサンプルについては
Java assertThatメソッドのサンプルを参照願います。

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

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

package test1;

/**
 * switchのサンプル
 */
class Sample {
	String runSample(){

		int i = 2;

		switch (i){
		case 1:
			return "a1";

		case 2:
			return "a2";

		default:
			return "a3";
		}
	}
}

public class Test1 {
	public static void main(String[] args) {
		String a;
		Sample s = new Sample();
 	}
}

4.テストクラスの実行

Eclipseのテストクラスのコード上で右クリック > 「実行」 > 「JUnitテスト」をクリックするとテストコードが動きます。

 

テスト実行後、結果が想定どうりだった場合 JUnitタブに緑色の帯が表示されます。

 

失敗だった場合
JUnitタブに赤色の帯が表示されます。
org.junit.ComparisonFailure: ~の箇所に「a3を予想していたが、実際はa2だった」と表示されています。

関連の記事

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




△上に戻る