Quick Fix for JUnit
http://beust.com/weblog/archives/000311.html
JUnitからTestNGへのconvert. TestNGには前から興味があったので触ってみたけれどJUnitの欠点を全て無くしている。
一番大きいのはテストケースのベースクラスという概念が消えたこと。
今まではテストケースがコンクリートなクラスに依存しているために、JUnit, Cactusでテストをする場合、内容的には全く同じテストをする場合でも、on memoryでテストするのか、in containerでテストするのかでベースクラスを切り替えなければいけなかった。
結合をロジックレベルで行うためにはon memoryで十分で、それをそのままin containerで行いたい場合、わざわざベースクラスを変えたものを作らなければいけなかったわけだ。
DI Containerで環境の切り替えが一括で行えるのに、テストケースのほうはベースクラスを置き換えなければいけないわけで、これはとても効率が悪い。
TestNGのようにAnnotationベースになれば直接テストケースがコンクリートなクラスに依存しなくなるため、テストケースの環境依存部の切り替えがかなり簡単に行えるようになる。要するに、テストケースにインジェクションが行えるようになることで、テストケースを変えることなく実行する環境を切り替えることが出来る。これで大分Javaでのテストはやりやすくなりそうだ。
# DIコンテナの流れを受けて、Testing Frameworkが進化をしたのはとても良い流れだな