■■■■ Java単体テストライブラリ-Artery-サンプル ■■■■
・私が開発しているJava単体テスト(Unitテスト)ライブラリArteryの使用サンプルを紹介します。当記事が目次になります。
・サンプルは順次追加していきます。
・なお、Arteryにはアルゴリズムライブラリも含まれています。こちらを参照してください。
Javaアルゴリズムライブラリ-Artery-サンプル
・Arteryライブラリは、以下よりダウンロードできます。
ベクター⇒プログラミング⇒Java言語
version202005 - 2020/05/13 リリース
Arteryライブラリは商用も含めて無償で使用することができます。
#機能の概要
- 検証メソッドの種類
- 二つのオブジェクトの等値判定
- 二つのオブジェクトの同一オブジェクト判定
- 真偽判定
- ArValidatorによる妥当性判定
- null/empty判定
- sucess/fail宣言
- コンテナ(Set,List,配列など)の要素の包含判定
- コンテナ同士の包含判定
- 数値のゼロ/非ゼロ判定
- 二つの数値の大小判定
- Date,Calendar,long,ArDateの現在日判定
- Date,Calendar,long,ArDateの現在日時判定
- Date,Calendar,long,ArDateの現在曜日判定
- Date,Calendar,long,ArDateの指定曜日判定
- 二つのDate,Calendar,long,ArDateの時刻を無視した同一日判定
- オブジェクトが指定のクラスであるか判定
- 二つのオブジェクトの同一クラス判定
- success/failの集計
- ログファイルへの出力
- 出力レベルの調整、フル出力,NGのみ,集計のみ
- テスト結果報告書作成
- 実行時間計測
- スタックトレース取得
#簡単な使い方(01)
#基本的な判定処理(02)
- 等値判定 - 二つのオブジェクトが同じ値であるかを判定する
- 同一オブジェクト判定 - 二つのオブジェクトが同一オブジェクトであるかを判定する
- 真偽判定 - 指定オブジェクトがtrue/falseであるかを判定する
- 妥当性判定 - 指定オブジェクトがArValidatorに合致するかを判定する
- null判定 - 指定オブジェクトがnullであるかを判定する
- empty判定 - String,Set,List,Mapなどが空であるかを判定する
- sucess/Fail宣言 - テストの成功・失敗を宣言する
##等値判定 - 二つのオブジェクトが同じ値であるかを判定する
/** 二つのオブジェクトが等しいか判定する. */
public static boolean equals(String identifier,String name0,Object value0,String name1,Object value1)
/** 二つのオブジェクトが等しくないか判定する. */
public static boolean notEquals(String identifier,String name0,Object value0,String name1,Object value1)
・数値の等値判定
・配列の等値判定
★List,Set
★Map
##同一オブジェクト判定 - 二つのオブジェクトが同一オブジェクトであるかを判定する
/** 二つのオブジェクトが同一オブジェクトか判定する. */
public static boolean same(String identifier,String name0,Object value0,String name1,Object value1)
/** 二つのオブジェクトが同一オブジェクトでないか判定する. */
public static boolean notSame(String identifier,String name0,Object value0,String name1,Object value1)
★[同一オブジェクト判定]
##真偽判定 - 指定オブジェクトがtrue/falseであるかを判定する
/** boolean値がtrueであるか判定する.*/
public static boolean isTrue(String identifier,String name,boolean value)
/** boolean値がtrueであるか判定する. */
public static boolean isFalse(String identifier,String name,boolean value)
★[真偽判定]
##妥当性判定 - 指定オブジェクトがArValidatorに合致するかを判定する
/** オブジェクトが妥当であるかを判定する. */
public static <T> boolean isValid(String identifier,String checkerName,ArValidator<T> checker,String objName,T object) /** オブジェクトが妥当でないことを判定する. */
public static <T> boolean isNotValid(String identifier,String checkerName,ArValidator<T> checker,String objName,T object)
##null判定 - 指定オブジェクトがnullであるかを判定する
/** オブジェクトがnullであるか判定する. */
public static boolean isNull(String identifier,String name,Object value)
/** オブジェクトがnullでないか判定する. */
public static boolean isNotNull(String identifier,String name,Object value)
##empty判定 - String,Set,List,Mapなどが空であるかを判定する
/** データがあることを判定する.対象は以下のオブジェクト.String,List,Set,Map,ArMapOnMap,ArBiMap,ArMatrix. */
public static boolean isNotEmpty(String identifier,String name,Object value)
/** データがないことを判定する.対象は以下のオブジェクト.String,List,Set,Map,ArMapOnMap,ArBiMap,ArMatrix. */
public static boolean isEmpty(String identifier,String name,Object value)
★[empty判定]
##Sucess/Fail宣言 - テストの成功・失敗を宣言する
/** テストの成功を宣言する.返値は常にtrue. */
public static boolean success(String identifier,String message)
/** テストの失敗を宣言する.返値は常にfalse. */
public static boolean fail(String identifier,String message)
★[success,fail]
#包含判定処理(03)
・コンテナ(Set,List,配列など)が指定要素を含んでいるかを判定する.
・コンテナ同士の包含関係を判定する
##要素の包含判定
/** 要素がCollectionに含まれるかをチェックする. */
public static <T> boolean contains(String identifier,String nameSet,Collection<T> set,String nameElement,T element)
/** 要素がCollectionに含まれないか判定する. */
public static <T> boolean notContains(String identifier,String nameSet,Collection<T> set,String nameElement,T element)
/** 要素が配列に含まれるか判定する. */
public static <T> boolean contains(String identifier,String nameArray,T[] array,String nameElement,T element)
/** 要素が配列の中に含まれなていないか判定する. */
public static <T> boolean notContains(String identifier,String nameArray,T[] array,String nameElement,T element)
★[Collectionの要素包含判定]
★[配列の要素包含判定]
##コンテナの包含判定
/** collecitoniBの要素がすべてcollectioinAに含まれるかをチェックする. */
public static <T> boolean contains(String identifier,String nameA,Collection<T> collectionA,String nameB,Collection<T> collectionB)
/** collectionBの要素の中でcollectionAの中に含まれないものがあるか判定する. */
public static <T> boolean notContains(String identifier,String nameA,Collection<T> collectionA,String nameB,Collection<T> collectionB)
/** 配列Bの要素がすべて配列Aに含まれるか判定する. */
public static <T> boolean contains(String identifier,String nameA,T[] arrayA,String nameB,T[] arrayB)
/** 配列Bの要素の中で配列Aの中に含まれないものがあるか判定する. */
public static <T> boolean notContains(String identifier,String nameA,T[] arrayA,String nameB,T[] arrayB)
/** mapAがmapBのペアをすべて含んでいるかを判定する. */
public static <T0,T1> boolean contains(String identifier,String name0,Map<T0,T1> mapA,String name1,Map<T0,T1> mapB)
/** mapBの要素の中でmapAに含まれていないものがあるかを判定する. */
public static <T0,T1> boolean notContains(String identifier,String name0,Map<T0,T1> mapA,String name1,Map<T0,T1> mapB)
★[Set同士の包含判定]
★[配列同士の包含判定]
★[Map同士の包含判定]
#数値判定処理(04)
・ゼロ・非ゼロ判定
・二つの数値の大小判定
##ゼロ・非ゼロ判定
/** 値がゼロか判定する.対象は以下のタイプ.BigDecimal, Byte, Double, Float, Integer, Long, Short */
public static boolean isZero(String identifier,String name,Number value)
/*** 値がゼロでないか判定する.対象は以下のタイプ.BigDecimal, Byte, Double, Float, Integer, Long, Short */
public static boolean isNotZero(String identifier,String name,Number value)
##二つの数値の大小判定
/** 二つの数値が等しいか判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean equals(String identifier,String name0,Number value0,String name1,Number value1)
/** 二つの数値が等しくないか判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean notEquals(String identifier,String name0,Number value0,String name1,Number value1)
/** value0 < value1であるかを判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean lessThan(String identifier,String name0,Number value0,String name1,Number value1)
/** value0 <= value1であるかを判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean lessEqual(String identifier,String name0,Number value0,String name1,Number value1)
/** value0 > value1であるかを判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean greaterThan(String identifier,String name0,Number value0,String name1,Number value1)
/** value0 >= value1であるかを判定する.Integer,Long,Float,Double,BigDecimalに対応.両方のタイプが違っていてもよい. */
public static boolean greaterEqual(String identifier,String name0,Number value0,String name1,Number value1)
##上記以外の判定処理はArValidatorを使用する
・以下のメソッドに数値判定用のArValidatorを渡して使用する
/** オブジェクトが妥当であるかを判定する. */
public static <T> boolean isValid(String identifier,String checkerName,ArValidator<T> checker,String objName,T object)
/** オブジェクトが妥当でないことを判定する. */
public static <T> boolean isNotValid(String identifier,String checkerName,ArValidator<T> checker,String objName,T object)
#日付・時刻・曜日判定処理(05)
・以下の機能がある。
・現在日判定
・現在日時判定
・現在曜日判定
・指定曜日判定
・同一日判定
##現在日判定
・ArDate,Date,Calendar,longが現在日であるか判定する。
/** 現在日と一致するか判定する. */
public static boolean currentDate(String identifier,String name,ArDate date)
/** 現在日と一致するか判定する. */
public static boolean currentDate(String identifier,String name,java.util.Date date)
/** 現在日と一致するか判定する. */
public static boolean currentDate(String identifier,String name,java.util.Calendar cal)
/** 現在日と一致するか判定する. */
public static boolean currentDate(String identifier,String name,long time)
##現在日時判定
・Date,Calendar,longが現在日時であるかを判定する。
・許容誤差を分単位で指定する。
/** 現在日時と一致するか判定する.diffは許容範囲(分) */
public static boolean currentTime(String identifier,String name,java.util.Date date,int diff)
/** 現在日時と一致するか判定する.diffは許容範囲(分). */
public static boolean currentTime(String identifier,String name,java.util.Calendar cal,int diff)
/** 現在日時と一致するか判定する.diffは許容範囲(分). */
public static boolean currentTime(String identifier,String name,long time,int diff)
・Date,Calendar,longが現在日時であるかを判定する(許容誤差を分単位で指定する)
##現在曜日判定
・ArDate,Date,Calendar,long,ArYoubiが現在曜日であるかを判定する。
/** 現在曜日と一致するか判定する. */
public static boolean currentYoubi(String identifier,String name,ArDate date)
/** 現在曜日と一致するか判定する. */
public static boolean currentYoubi(String identifier,String name,java.util.Date date)
/** 現在曜日と一致するか判定する. */
public static boolean currentYoubi(String identifier,String name,java.util.Calendar cal)
/** 現在曜日と一致するか判定する. */
public static boolean currentYoubi(String identifier,String name,long time)
/** 現在曜日と一致するか判定する. */
public static boolean currentYoubi(String identifier,String name,ArYoubi youbi)
##指定曜日判定
・ArDate,Date,Calendar,long,ArYoubiが指定曜日であるかを判定する。
/** 指定曜日と一致するか判定する. */
public static boolean youbiEquals(String indentifier,String name,ArDate date,String youbiString,ArYoubi youbi)
/** 指定曜日と一致するか判定する. */
public static boolean youbiEquals(String indentifier,String name,java.util.Date date,String youbiString,ArYoubi youbi)
/** 指定曜日と一致するか判定する. */
public static boolean youbiEquals(String indentifier,String name,java.util.Calendar cal,String youbiString,ArYoubi youbi)
/** 指定曜日と一致するか判定する. */
public static boolean youbiEquals(String indentifier,String name,long time,String youbiString,ArYoubi youbi)
/** 指定曜日と一致するか判定する. */
public static boolean youbiEquals(String indentifier,String name,ArYoubi youbi0,String youbiString,ArYoubi youbi1)
##同一日判定
・ArDate,Date,Calendar,longが同一日であるかを判定する。
・時刻が違っても同一日であるかを判定する。
・上記のすぺての組合せを用意している。下記はDateとCalendarの場合を示す。
/** 同一日判定 Date vs Calendar. */
public static boolean sameDate(String identifier,String name0,Date date0,String name1,Calendar cal1)
/** 非同一日判定 Date vs Calendar. */
public static boolean notSameDate(String identifier,String name0,Date date0,String name1,Calendar cal1)
・ArDate,Date,Calendar,longが同一日であるかを判定する
#クラス判定
・二つのオブジェクトが同一クラスであるかを判定する、
・オブジェクトが指定のクラスであるかわ判定する。
/** 二つのオブジェクトが同一クラスか判定する. */
public static boolean sameClass(String identifier,String name0,Object value0,String name1,Object value1)
/** 二つのオブジェクトが同一クラスでないか判定する. */
public static boolean notSameClass(String identifier,String name0,Object value0,String name1,Object value1)
/** オブジェクトが特定のクラスのオブジェクトであるか判定する. */
public static boolean isThisClass(String identifier,String name0,Object value,String name1,Class clazz)
/** オブジェクトが特定のクラスのオブジェクトではないか判定する. */
public static boolean isNotThisClass(String identifier,String name0,Object value,String name1,Class clazz)
★[クラス判定]
#単体テスト結果報告書の作成(06)
・出力形式をタブ区切りを含むものにする
・エクセルで読み込むことでテスト結果報告書とすることができる
#実行時間計測(07)
★[実行時間計測]
#その他(08)
##スタックトレースを取得する
★[スタックとレースの取得]
#JUnit4
・数値の等値判定
・配列の等値判定
★[JUnit4-数値の大小判定]
★[JUnit4-Listの等値判定]
★[JUnit4-Listの包含判定]
★[JUnit4-Setの等値判定]
★[JUnit4-Setの包含判定]
★[JUnit4-Mapの等値判定]
★[JUnit4-Mapの包含判定]
★[JUnit4-Stringのいろいろな判定]
★[JUnit4-真偽判定]
★[JUnit4-Success/Fail]
#TestNG