Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

Junitでjavaの単体テストを作る

スポンサーリンク

javaのテストフレームワークであるjunit.使い方を少し学んだので書いておきます. eclipse (Kepler)ですと,標準で入っているので手間が無いですね.

eclipseでのjunitの使い方

  1. パッケージエクスプローラの中で,テストを行いたいクラスの書かれたソースをクリックして選択
  2. 右クリックで新規→その他
  3. javajunitjunitテストケースを選択→次へ

    f:id:konbu13:20140118225525j:plain

  4. そのまま次へ

    f:id:konbu13:20140118225557j:plain

  5. テスト・メソッドの画面になる.使用可能なメソッドからテストを作りたいメソッドをチェックして完了

    f:id:konbu13:20140118225609j:plain

  6. junit4がない問われたらOKで.

    f:id:konbu13:20140118225616j:plain

結果,テスト用のクラスが作られる.

f:id:konbu13:20140118225623j:plain

テストで使うクラス

今回テストするクラス:

public class JunitExample {

    public JunitExample() {
        // TODO 自動生成されたコンストラクター・スタブ
    }

    public int foo() {
        return 1;
    }

}

作成されたテスト用クラス:

import static org.junit.Assert.*;

import org.junit.Test;

public class JunitExampleTest {

    @Test
    public void testFoo() {
        fail("まだ実装されていません");
    }

}

実行

Ctr+F11で実行.

f:id:konbu13:20140118225649j:plain

こんなふうに,失敗マークであるバツじるしが書かれる.

修正

assertEquals()を入れてみる.

public static void assertEquals(long expected,
                                long actual)
Asserts that two longs are equal. If they are not, an AssertionError is thrown. 

Parameters:
expected - expected long value.
actual - actual long value

期待する値とテストしたいメソッドの出す値が一致していればテスト成功. でなければテスト失敗,というシンプルな関数です.

例を書いてみます↓

   @Test
    public void testFoo() {
        JunitExample example = new JunitExample();
        assertEquals(1, example.foo());
    }

実行すると,こんな画面に.うまく言ったので,緑のチェックマークが付きました.

f:id:konbu13:20140118225701j:plain

失敗した時

失敗すると,障害とレース場面に,but was <1>のように実際の出力値がなんだったか出してくれるので便利ですね.

f:id:konbu13:20140118225711j:plain