YokohamaUnitの紹介 (1) 関数的なメソッドのテスト [YokohamaUnit]
YokohamaUnitでは1つのソースファイルが1つのJUnitテストクラスにコンパイルされる。) ソースファイルの標準的な拡張子はdocyである。
テストケースを書くには # Test:
という文字列に続けて、
そのテストの名前を示す見出しを書く。
この見出しはJUnitテストクラスにおけるメソッド名の元になるが、 特にJavaのメソッド名の規約の制約を受けない。
最初のハッシュ記号は上の例では1つだが、1つから6つまでの任意の数でよい。
YokohamaUnitのテストケースの書き方は「関数的なメソッドのテスト」と 「4フェーズテスト」の2つに分けられる。今回は前者を取り上げる。
関数的なメソッドとはその結果が引数の値のみによって決定されるメソッドである。[^1] そのようなメソッドはもっともテストがしやすい。
関数的なメソッドをテストするためのAssert文は見出しに続けて直接書くことができる。
thatは省略してもよい。
ここでは Integer.valueOf
がテスト対象のメソッドである。
バッククォートに囲まれた部分 Integer.valueOf("123")
はGroovyの式として解釈される。
Assert文は1つの見出しの下に複数続けて記述しても構わない。
この場合それぞれのAssert文に対して別々のJUnitテストメソッドが生成される。 したがって一方が失敗してももう一方のテストは実行されるし、2ケースとカウントされる。
次のように書いた場合は1つのメソッドのみが生成される。
例外の送出をテストしたい場合は次のように書く。
例外を送出しないということをあえてテストとして書きたい場合は次のように書く。
Assert文の副文の主語にあたる部分が長くなると読みにくくなることがある。 そのような場合、where句を使って変数を導入することができる。
is
の代わりに=
を使ってもよい。
複数の変数を導入することもできる。
[^1] Javaのような言語では「引数と不変なフィールドの値のみによって」 といったほうがいいかもしれない。 そのように定義するならば、メソッドの引数だけでなく、 不変なフィールドを初期化するコンストラクタ引数にも依存してよい。
コメント 0