Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

テストコードは違う言語がいい

個人的にはエンタープライズなシステムはJavaを始めとする静的言語が適切だと思ってるけど、テストコードまでJavaで書く必要はないんじゃないか。


テストコードというのはその対象(メソッドとか機能)の第1のクライアントだ。
つまり、使う側であって使われる側ではない。
使われる側はどんな使われ方をするのかというバリエーションを考える必要がある。
でも使う側は目的が1つではっきりしてる(その機能を呼び出すという目的)。


テストコードはパフォーマンスとかセキュリティとか諸々のことはそれほど要求されない。
だからいかに簡単に書けるか、サクッと書けるかってところがポイントだと思う。
めんどくさい、と思わずに済む言語を使う方がいい。


デメリットは2つの言語を使える必要があるってことだけ。


Javaと親和性がある言語なら、たとえばGroovy。そしてScala
Groovyはスクリプト言語だから記述量が少ないし、Scalaオブジェクト指向+関数型で後発の言語の分洗練されてる。
どちらもJVM上で実行するし、すぐに使える環境になる。


TestNGTestNG+Groovy、TestNG+Scalaといった記事がある。
Groovy - Using TestNG with Groovy
Jack Cough on Software: Using TestNG in Scala: By Example