目次 ⇒ Java単体テストライブラリ-Artery-サンプル
Javaの単体テストライブラリArteryでは、単体テストの結果をタブ区切りで出力することにより、単体テスト結果報告書とすることができます。
package jp.avaj.lib.test;
/**
Java 単体テスト結果報告書の自動作成
単体テストの結果をエクセルで読込むと、テスト結果報告書の形式にすることができる。
この形式でよければ、テスト結果報告書の作成の手間を省くことができる。
*/
public class Q06_00 {
public static void main(String[] args) {
// 単体テスト結果報告書の作成
// この出力をエクセルで読込むとテスト結果報告書となる
{
// エクセル出力の指定
ArTest.testOutLevel = ArTestOutLevel.EXCEL;
// テストの名称⇒先頭に表示される
ArTestExcelEnv.systemName = "QIITAシステム単体テスト結果報告書";
// テスト実施者⇒指定しなければテスト実施者は表示されない
ArTestExcelEnv.testerName = "闇雲";
// テスト実施日⇒指定しなければ yy/mm/dd となる
ArTestExcelEnv.testDate = "12/31";
// テスト番号の開始⇒指定しなければ 0 となる
ArTestExcelEnv.startTestNo = 1;
}
// ログ出力ファイルの指定
ArTest.startUnitTest("unittest","c:/tmp");
ArTest.startTestCase("うるう年判定");
boolean result;
// 2020年はうるう年 ⇒ resultはtrueが正しい
result = LeapYear.isLeapYear(2020);
// 結果をチェックする.
ArTest.isTrue("2020年","result",result);
// 2100年は平年 ⇒ resultはfalseが正しい
result = LeapYear.isLeapYear(2100);
// 結果をチェックする.
ArTest.isFalse("2100年","result",result);
// テストケースを終了する
ArTest.endTestCase();
ArTest.startTestCase("キム・ベイシンガーの役名⇒映画名の変換");
// ヴィッキー・ヴェイル ⇒ 正解はバットマン
String movie = Kim.getMovieTitle("ヴィッキー・ヴェイル");
// 結果をチェックする
ArTest.equals("ヴィッキー・ヴェイル","expected","バットマン","movie",movie);
// キャロル・マッコイ ⇒ 正解はゲッタウェイ
movie = Kim.getMovieTitle("キャロル・マッコイ");
// 結果をチェックする
ArTest.equals("キャロル・マッコイ","expected","ゲッタウェイ","movie",movie);
// テストケースを終了する
ArTest.endTestCase();
// すべてのテストケースの集計の表示
ArTest.reportTotalSummary();
}
//////////// 以下はテスト対象のクラス
/** うるう年判定クラス(もしかしたらバグがあるかも). */
static class LeapYear {
public static boolean isLeapYear(int year) {
return ((year % 4) == 0);
}
}
/** キム・ベイシンガーの役名⇒映画名の変換クラス(もしかしたらバグがあるかも). */
static class Kim {
public static String getMovieTitle(String name) {
if ("ヴィッキー・ヴェイル".equals(name)) { return "バットマン"; }
if ("キャロル・マッコイ".equals(name)) { return "ブロンディ"; }
// その他は省略
return null;
}
}
}
エクセルの出力指定をしない場合の結果は次のとおり
result.txt
**** うるう年判定 start ****
OK 2020年:result=true
NG 2100年:result=true
jp.avaj.lib.test.Q06_00.main(Q06_00.java:44)
**** うるう年判定 summary ****
test count = 2
success = 1
**** キム・ベイシンガーの役名⇒映画名の変換 start ****
OK ヴィッキー・ヴェイル:expected=バットマン:movie=バットマン
NG キャロル・マッコイ:expected=ゲッタウェイ:movie=ブロンディ
jp.avaj.lib.test.Q06_00.main(Q06_00.java:60)
**** キム・ベイシンガーの役名⇒映画名の変換 summary ****
test count = 2
success = 1
**** total ****
total test count = 4
total success = 2
エクセルの出力指定をした場合の結果は次のとおり
result.txt
QIITAシステム単体テスト結果報告書
**** うるう年判定 start ****
TestNo 日付 担当 結果 テスト内容 期待値 実際値
001-001 12/31 闇雲 OK 2020年 TRUE true
001-002 12/31 闇雲 NG 2100年 FALSE true
**** うるう年判定 summary ****
test count = 2
success = 1
**** キム・ベイシンガーの役名⇒映画名の変換 start ****
TestNo 日付 担当 結果 テスト内容 期待値 実際値
002-001 12/31 闇雲 OK ヴィッキー・ヴェイル バットマン バットマン
002-002 12/31 闇雲 NG キャロル・マッコイ ゲッタウェイ ブロンディ
**** キム・ベイシンガーの役名⇒映画名の変換 summary ****
test count = 2
success = 1
**** total ****
total test count = 4
total success = 2
エクセルで読込むと次のようになる。