JUnitによるロジッククラスのテストの自動化

Webtribeで作成したロジッククラスのテストをJUnitを使用してテストを行うことが出来ます。
Webtribeでは JUnitのテスト方法として、 独自でコーディングを行う方法と、XMLにテストパターンを記述する方法の 二種類を用意してます。

1. JUnitの準備

JUnit.orgより JUnitのモジュールをダウンロードして下さい。
http://www.junit.org/

モジュールを解凍すると、[junit.jar] 或いは [junit-(バージョン番号).jar] が、 解凍した直下のディレクトリに見つかるかと思われます。
このクラスは JUnit の実行に必要な ライブラリファイルとなります。

このライブラリファイルは、ドキュメント上では
[junit.jar] という名前で記述させて頂きます。

 

2. 独自でコーディングを行う JUnitのテスト

独自に JUnitのTestCaseをコーディングし記入することが出来ます。

2-1. ソースのサンプルと、説明

package jp.ne.mki.sample.wedge.junit;

import jp.ne.mki.wedge.junit.rule.RuleResult;
import jp.ne.mki.wedge.junit.rule.RuleRunner;
import jp.ne.mki.wedge.rule.common.value.AddTail;
import junit.framework.TestCase;

public class TestAddTail extends TestCase {

    public void test1() throws Throwable {

        AddTail rule = new AddTail();
        RuleRunner ruleRunner = new RuleRunner(rule);

        // 入力レコードの設定
        ruleRunner.addInData("spring");
        ruleRunner.addInData(new String[] { "summer", "autumn", "winter" });

        // 出力レコードの設定
        ruleRunner.addOutData(RuleRunner.EMPTY_TEXT_DATA);
        ruleRunner.addOutData(RuleRunner.EMPTY_COLUMN_DATA);

        // パラメータの設定
        ruleRunner.setRuleParameter(".txt");

        // 実行
        RuleResult result = ruleRunner.execute();

        // 実行結果チェック
        result.statusCheck(RuleRunner.OK);

        // 出力レコードチェック
        result.outCheck(0, "spring.txt");
        result.outCheck(1, new String[] { "summer.txt", "autumn.txt",
                "winter.txt" });

    }
}

Webtribeでは、ロジッククラスの実行用のクラス(RuleRunner)と結果格納用のクラス(RuleResult)を提供してます。

それぞれのクラスは下記のメソッドを提供しています。

jp.ne.mki.wedge.junit.rule.RuleRunner
コンストラクタで実行するロジッククラスのインスタンスを設定してください。

jp.ne.mki.wedge.junit.rule.RuleResult
RuleRunner#execute()を実行することによって生成されるクラスです。

2-2. コンパイル

コンパイルを行うには下記 jarファイルがクラスパスに必要です。

2-3. 実行

JUnitでのテスト実行する方法として JUnit.jarに標準で含まれる TestRunenrを 使用する方法があります。
下記は TestRunnerを使用した実行のバッチファイルのサンプルです。

set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_06\
set CLASSPATH=lib\RuleCommonClient.jar;lib\ToolClient.jar;lib\junit.jar;C:\java\test\classes

"%JAVA_HOME%\bin\java" junit.textui.TestRunner jp.ne.mki.sample.wedge.junit.TestAddTail
pause
なお、このバッチファイルで動作をするのは 下記のような環境の時のバッチファイルです。
TestCaseが存在しているディレクトリの位置や、Javaのホームディレクトリの位置が異なる場合は
必要に応じてバッチを修正してください。

.....
Time: 0.031

OK (5 tests)

続行するには何かキーを押してください . . .		
といった形で表示された場合は、テストが正常に完了したことを示しております。
何らかの問題が生じた場合はその内容が バッチウィンドウ上に出力されます。

 

3. XMLを使用した JUnitのテスト

この方法は、テストに必要なクラス名や データ、また実行後のテスト結果などを XMLに記述しておき、そのXMLを読み込むことでテストを行います。
流れとしては、

  1. XMLの作成
  2. 実行の準備
  3. JUnitの実行
といった手順となり、一度 XMLを作成しておくと、
以降同じテストを 自動的に何度もテストをすることが出来ます。

3-1. XMLの作成

テスト情報のXMLは、テキストエディタなどで作成をすることも可能ですが、 デバッグテストツールの機能を使用して生成をすることも可能です。

まず、テストパターンを作成したいロジッククラスを用意し、テストツールを起動して テストを実行してください。
テストを実行した後、その表示された結果が 正しいテスト結果であった場合は、
メニューバーの[ファイル] から、 [XMLエクスポート]を実行してください。

その後ファイルチューザが表示されますので、適当なファイルに保存を行います。
このファイルをエディタ等で開いていただくと、先ほど行ったテストの情報が XMLとして出力されているのが確認できるかと思われます。

<?xml version="1.0" encoding="Shift_JIS"?>

<test class_name="TestAddTail" package="jp.ne.mki.wedge.rule.common.value">
	<target class_name="AddTail" package="jp.ne.mki.wedge.rule.common.value">
		<comment>テスト</comment>
	</target>

	<case name="Success1" comment="基本動作1">
		<in>
			<item name="IN-1" itemType="TEXT">
				<value>spring</value>
			</item>
			<item name="IN-2" itemType="COLTEXT">
				<value>summer</value>
				<value>autumn</value>
				<value>winter</value>
			</item>
		</in>
		<out>
			<item name="OUT-1" itemType="TEXT">
				<value></value>
			</item>
			<item name="OUT-2" itemType="COLTEXT">
			</item>
		</out>
		<parameter>.txt</parameter>
		<return result="OK">
			<out>
				<item name="OUT-1">
					<value>spring.txt</value>
				</item>
				<item name="OUT-2">
					<value>summer.txt</value>
					<value>autumn.txt</value>
					<value>winter.txt</value>
				</item>
			</out>
		</return>
	</case>
</test>
		
		

これで XMLの準備は完了となります。
このXMLをどこか適当なディレクトリに保存をして下さい。

補足補足
一つのロジッククラスで、二種類以上のテストパターンを用意しておきたい場合は、 再度別のテストを行った後、[XMLエクスポート]を選択して 先ほどのファイルと同じファイルを選択してください。

『同名のファイルが存在します。このファイルにテストパターンを追加しますか?』

という確認ダイアログが表示されますので、「はい」を押しますと、 同じファイルに複数のテストパターンを記述することが出来ます。
(一つのファイル内のテストは、すべて同じロジッククラスのテストとする必要があります。)

3-2. XMLを使用したJUnitの準備

このjunit.jarを Webtribeのクライアントディレクトリにある
lib ディレクトリへコピーしてください。
(※ [junit-(バージョン番号).jar]の場合は [junit.jar] とリネームしてください。)

3-3. XMLを使用したJUnitの実行

準備が出来たら、LogicClassJUnitTest.batを実行してください。

Testcase Create Start. (XML Path Name = ./junitxml)
Testcase Create End
.....
Time: 0.031

OK (5 tests)

続行するには何かキーを押してください . . .		
といった形で表示された場合は、junitxmlに含まれるテストパターンが、 すべて正常に完了したことを示しております。
何らかの問題が生じた場合はその内容が バッチウィンドウ上に出力されます。

デフォルトではサンプルの XML定義が設定されてますが、 前項で作成をした 独自のテストパターンのファイルを junitxmlディレクトリに格納をすると、
次回以降起動した際に、そのXMLファイルに記述された内容もテストが行われます。