概要
Javaプログラムの単体テストを行うためのツール(フレームワーク)
目的
- 不具合を発見する
- 仕事が完了したことを確認する
- システムをより優れたものに改良する
利用手順(テストクラスの作成と実行)
(Eclipseで利用する)
- JUnitプラグインをインストール
※Eclipse JDTには標準で入っている - テストコードを書きたいソースコードを右クリックして、[新規] > [JUnitテストケース]を選択。⇒テストケース作成
- 実行する時は「プロジェクト・エクスプローラー」からテストクラスを選択して右クリック→「実行」→「実行の構成」でJUnitを選択して実行する
Eclipseでは,Eclipse JUnitプラグインを利用すると簡単にテストケースが作成できる。
利用例
###(例1)###
↓↓テストコードを書きたいソースコード
public class sample {
public static int num() {
return 10;
}
}
↓↓テストを実施するクラス
import static org.junit.Assert.*;
import org.junit.Test;
public class SampleTest {
@Test
public void testNum() {
assertEquals(10, sample.num());
assertEquals("10じゃない!!",10, sample.num());
}
}
Sample.javaのnumメソッドを使用したら「10」が返ってくるかどうかのテストを行っています。
↓は10でなければエラーになる
assertEquals(10, sample.num());
↓は10でなければ「10じゃない!!」というメッセージが出力されてエラーになる
assertEquals("10じゃない!!",10, sample.num());
結果
テストはassertEqualsメソッドで期待値と結果値をチェックして判定を行う。判定の結果(エラーの場合)メッセージを出力することもできる。
ルール
- テストクラスの命名規則「XxxTest.java」
- テストメソッドの命名規則「testXxx()」
- テストメソッドの前に「@Test」を付ける
- テストメソッドは「引数なし」+「返り値なし」
- テストメソッドに 「assertEquals("error時の文",期待値,実測値)」
補足
JUnit = Javaプログラムの単体テストを行うためのツール
###単体テストとは…###
作成したコードが要件を満たしているか、確認するためのもの
組み立ててしまってから不具合が見つかった場合、どの「部品」が悪いのか探し当てるには、多くの時間と労力が必要
= 不具合の発見に有効
###XP(eXtreme Programming) 開発方法論###
設計仕様を単体テストの形で与えることを唱えています。
設計時に単体テストを作成し、単体テストをパスする=完成とする
単体テストはテストプログラムの形で与えます。
テストプログラムを作成し、自動化テストを行うことが望ましい
- 何度でも試せる
テストプログラムは、一度書いてしまえば、手軽に何度でもテストを行うことができます。 - 使いまわしがきく
似たような機能のテストを行うとき、テストプログラムのコードを再利用することにより、より短時間にテストを完成させることができます。