テストデータの記述

ユニットテストで使うテストデータを記述するフォーマットとして、これまではテストクラスに配列で持っていたのですがわかりにくいのが難点でした。


Object testData = {
  { "abc", "xyz" },
  { "ABC", "XYZ" },
}

項目数が増えると管理が大変になりますし、複雑な構造を表すのが困難です。

XML も検討したのですが記述量が多くて面倒なので候補からはずしました。

現在試しで使っているのが Yaml です。Java 向けライブラリの JYaml (http://jyaml.sourceforge.net/) を使っています。こんな感じで記述できます。

  - !data
    - !field
      name: param1
      inputValue: value1
      expectedValue:
        - value1
    - !field
      name: param2
      inputValue: value2
      expectedValue:
        - value2

ここで
        TestData testData = Yaml.loadType(new File("test1.yml"), TestData.class);
とするだけで簡単に Java のオブジェクトに変換できます。

上記の !field のように多少の型情報を埋め込む必要がありますが柔軟なデータ構造を記述できて XML より記述量が少ないので期待できそうです。

しばらく使ってみます。
-- Andy