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が進化をしたのはとても良い流れだな