Web系開発メモ

Java, JavaScript, CSS, HTML などの記事を書いています。

Javaテスト:JUnitで単体テスト

JUnitJava単体テストをする方法を書いていきます。JUnit は、単体テストを実行するためのフレームワークです。

手順1. テストクラスの作成

JUnit を使って、単体テストをプログラムとして書いていきます。プログラムなので、繰り返し自動でテストすることが容易です。

gsjt/src/test/java/gsjt/JunitTest.java

package gsjt;

import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import org.junit.Test;

public class JunitTest {

    // @Test で JUnit のテストケースになる。
    @Test public void test() {
        
        // 準備(≒ given)
        int a = 1;
        
        // 実行(≒ when)
        int result = a + a;
        
        // 検証(≒ then)
        // 結果 result が、期待値 2 と等しいこと。
        assertThat(result, equalTo(2));
    }
}

検証の equalTo(2) で、Hamcrest というライブラリを使っています。JUnit も内部で Hamcrest を使用しています。

手順2. クラスパスの設定

Gradle のビルドファイルを使って、クラスパス(依存性)を設定しました。

gsjt/build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}
dependencies {
    testCompile 'junit:junit:4.12'
}

dependencies で JUnit を設定しています。

手順3. テストの実行

テスト実行方法の例を2つ書きます。

手順3.1. Eclipse で実行

Eclipse(のエディタ)でテストクラスを開いて、「実行(JUnit テストとして実行)」します。実行すると、JUnit のビューに実行結果が表示されます。

view-junit

緑だと成功で、赤だと失敗のケースがあります。ビューで失敗したメソッドを選択すると、実行結果や例外を確認できます。

手順3.2. コマンドラインで実行

ビルドファイルを作成した gsjt ディレクトリで、Gradle のコマンドを実行します。

gsjt > gradle test

デフォルトだと、シンプルなレポート(build/reports/tests/index.html)に、テスト結果が出力されるようです。

参考文献

Getting started - JUnit

The Hamcrest Tutorial - Java Hamcrest