JSONによるテストデータ定義

この文書では、JSONでテストデータを定義する方法について紹介します。

入力データと期待データ

JSON形式でテストデータを定義するには、 .json という拡張子のUTF-8テキストファイルを作成して下さい。 ここにJSON形式の「オブジェクト」を列挙することで、それらを入力データや期待データの列として利用できます。

{
    "sid": 1,
    "shipped_date": "2010-12-01 12:00:00",
    "item_code": 1
}
{
    "sid": 2,
    "shipped_date": "2010-12-01 12:00:00",
    "item_code": 2
}
{
    "sid": 3,
    "shipped_date": "2010-12-01 12:02:00",
    "item_code": 2
}

また、それぞれのプロパティ名はDMDLと同様に snake_case の形式で指定します。 それぞれのプロパティに対し、以降で紹介する値を設定できます。

Attention

作成したJSONファイルは、必ず .json という拡張子で保存して下さい。 それ以外の拡張子を指定した場合、テストドライバーはJSONファイルとして取り扱いません。

Attention

JSONファイルはJSONの配列ではなく、JSONのオブジェクトを列挙した形で指定してください。 オブジェクトの区切りにカンマ等も不要です。

数値

数値を表す値を入力するには、プロパティにその数値を記述するか、またはその数値を表す文字列を記述します。

文字列が入力された場合、次の方法で適切な数値に変換します。

数値の変換方法
データ型 変換方法
long までの整数 Long.parseLong
double までの浮動小数点 Double.parseDouble
上記以外の数値 new BigDecimal(...)

その後、実際の型に合わせて値が切り詰められます。 値が切り詰められる際に、オーバーフローやアンダーフローが発生する場合もあります。

Hint

精度の高い数値を利用したい場合、文字列の形式で指定しておく方が無難です。

文字列

文字列を入力するには、プロパティに文字列リテラルを指定します。

論理値

論理値を表す値を入力するには、 true または false を直接指定します。

日付と時刻

日付や時刻を表す値を入力するには、それぞれを表す文字列を記述します。 現在のところ、日付は - (ハイフン) 区切りで時刻は : (コロン)区切り、日付と時刻はホワイトスペースで区切ります。

日付を指定する場合には、年月日のすべてを指定する必要があります ( "1999-12-31" など)。 時刻を指定する場合には、24時間表記で時分秒を全て指定する必要があります ( "12:34:05" など)。

NULL値

プロパティにNULLを指定する場合、JSONオブジェクトからそのプロパティを取り除きます。 テストドライバーは未定義のプロパティを単にNULLとして取り扱います。

テスト条件

現在のところ、JSONでテスト条件を記述することはできません。 他の形式のテストデータと組み合わせて利用するか、テスト条件のみをJavaで直接記述して下さい。

テストデータの利用

作成したテストデータのJSONファイルは、テストドライバーの規約に従って配置して下さい。 このファイルをテストドライバーから参照する際には、ファイルパスを直接指定します。