2012年4月8日日曜日

#junitbc JUnit Boot Camp に参加してきた

最近、burnを飲み始めました。

みけです。

いきさつ


私のATND notifier には単語「JUnit」が登録されているので、

誰かがJUnitというキーワードのあるイベントが登録すると自動通知するようになっています。

というわけで、参加してきました。

JUnit強化キャンプ


内容


非常に内容が濃いので、何回かにわけて報告しようと思います。

個人的にはJUnitの応用編が大変勉強になりました。

そして、主催の @shuji_w6e さんが実は熟練したGroovyistであることもわかりました。


Groovy…エ


ざっくりしたGroovyの紹介でした。

POGOをJavaで使う際に便利なアノテーションで

コンストラクタやtoStringなども自動生成できることを教えてもらいました。

例えば、このようなアノテーションを付与したクラス



は、このようにコンパイルされます。




toStringやコンストラクターが自動で生成されるんですね。



AppengineTestCase


JUnitの応用編で教えてもらったRuleアノテーションの利用方法です。

Slim3にてテストクラスを作成する場合は、AppengineTestCaseクラスを継承して作成するのが一般的です。

そこで、下記のようなユーティリティクラスを作成します。




これは、単純にAppengineTestCaseクラスを真似したようなクラスです。

このユーティリティクラスにRuleアノテーションを付与して次のようにテストクラスを作成します。




すると、不思議なことにAppengineTestCaseを継承していなくてもテストクラスが作成できます。

これのお陰でBeforeアノテーションを付与したsetUpメソッドを別途作成することができ、super.setUp()を呼び出さなくても良くなります。

なお、ものにもよりますが、Ruleアノテーションを付与したExternalResourceのbeforeメソッドはBeforeアノテーションより前に実行されます。


明日、また内容についてブログを書きます。

それでは。



参考

junitにデフォルトであるExternalResourceクラス



statementメソッドでbefore()→evaluate()→after()の順番で実行されています。

このevaluate()にて@Before→@Test→@Afterが実行されていきます。



0 件のコメント:

コメントを投稿