JUnitについて
JUnitとは、Javaで作成されているJavaプログラムの自動化ユニットテスト(単体テスト)を行うためのツールです。
JUnitにはテストを作成、そして実行するためのクラス、ライブラリがあります。
テストロジックの作成コストは掛かりますが、決まりきったテスト操作を繰り返す場合などには効果を発揮します。
JUnitのインストール(設定)
最初にダウンロードしたアーカイブを展開します。
次に環境変数にJUNIT_HOME、CLASSPATHを設定します。(C:¥junit3.8.1に展開した場合の例)
- JUNIT_HOME C:¥junit3.8.1¥junit3.8.1
- CLASSPATH C:¥junit3.8.1¥junit3.8.1¥junit.jar
以上でインストール(設定)は終了になります。
コマンドプロンプトで以下のコマンドを実行すればJUnitの画面が表示されます。
java junit.swingui.TestRunner 試験を実行するクラスへのパス
JUnitのテストメソッド
メソッド | 説明 |
assertEquals(Object expected, Object actual) | expectedtとactualが同じ値の場合は成功、異なる場合は失敗する。 |
assertEquals(String message, Object expected, Object actual) | expectedtとactualが同じ値の場合は成功、異なる場合は失敗し、messageが表示される。 |
assertSame(Object expected, Object actual) | expectedtとactualが同じオブジェクトを参照している場合は成功、異なる場合は失敗する。 |
assertSame(String message, Object expected, Object actual) | expectedtとactualが同じオブジェクトを参照している場合は成功、異なる場合は失敗し、messageが表示される。 |
fail() | テストを失敗させたい時に利用する。 |
fail(message) | テストを失敗させたい時に利用する。失敗した時はmessageが表示される。 |
assertTrue(boolean) | 値がtrueの場合は成功、falseの場合派失敗する。 |
assertTrue(String message, boolean) | 値がtrueの場合は成功、falseの場合派失敗し、messageが表示される。 |
@Test(expected=Exception.class) | テストメソッドではないが、テストを実行すると任意の例外が発生することを期待する情報を@Testアノテーションに記載する。 |
JUnitの試験クラスサンプルソース
/** * JUnitの試験クラスサンプル */ import junit.framework.TestCase; public class testJuint extends TestCase { // コンストラクタ public testJuint(String name) { super(name); System.out.println("testJuint call"); } // 実行前処理 protected void setUp() throws Exception { super.setUp(); System.out.println("setUp call"); } // 実行後処理 protected void tearDown() throws Exception { super.tearDown(); System.out.println("tearDown call"); } public void testSample0() { System.out.println("@Test testSample0 call"); // 処理実行 test.main(new String[]{""}); } public void testSample1() { System.out.println("@Test testSample1 call"); // 結果の比較 // assertEquals(String message, Object expected, Object actual) // expectedtとactualが同じ値の場合は成功、異なる場合は失敗し、messageが表示される。 assertEquals("比較失敗1", CommonFunc.getCutDate("2015041512345", "YYYYMMDD"), "20150415"); } public void testSample2() { System.out.println("@Test testSample2 call"); // 結果の比較 // assertEquals(String message, Object expected, Object actual) // expectedtとactualが同じ値の場合は成功、異なる場合は失敗し、messageが表示される。 assertEquals("比較失敗2", CommonFunc.getCutDate("2015041512345", "YYYYMM"), "201504"); } }