========================== JSONによるテストデータ定義 ========================== この文書では、JSONでテストデータを定義する方法について紹介します。 入力データと期待データ ====================== JSON形式でテストデータを定義するには、 :file:`.json` という拡張子のUTF-8テキストファイルを作成して下さい。 ここにJSON形式の「オブジェクト」を列挙することで、それらを入力データや期待データの列として利用できます。 .. literalinclude:: shipment_input.json :language: javascript また、それぞれのプロパティ名はDMDLと同様に ``snake_case`` の形式で指定します。 それぞれのプロパティに対し、以降で紹介する値を設定できます。 .. attention:: 作成したJSONファイルは、必ず :file:`.json` という拡張子で保存して下さい。 それ以外の拡張子を指定した場合、テストドライバーはJSONファイルとして取り扱いません。 .. attention:: JSONファイルはJSONの配列ではなく、JSONのオブジェクトを列挙した形で指定してください。 オブジェクトの区切りにカンマ等も不要です。 数値 ---- 数値を表す値を入力するには、プロパティにその数値を記述するか、またはその数値を表す文字列を記述します。 文字列が入力された場合、次の方法で適切な数値に変換します。 .. list-table:: 数値の変換方法 :widths: 10 10 :header-rows: 1 * - データ型 - 変換方法 * - ``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ファイルは、テストドライバーの規約に従って配置して下さい。 このファイルをテストドライバーから参照する際には、ファイルパスを直接指定します。