TestNGというテスティングフレームワークがある。
JavaにおけるテスティングフレームワークはもちろんJUnitがデファクトスタンダードだ。
でも、TestNGにもスゴくいいところがある。
TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use
TestNG - Welcome
TestNGはJUnitにインスパイアされたと同時にアンチテーゼとして作られてる。
TestNG is designed to cover all categories of tests: unit, functional, end-to-end, integration, etc...
TestNG - Welcome
TestNGはユニットテストだけでなく、機能テストや統合テストもカバーするように設計されてる。
ユニットテストが主なターゲットであるJUnitとはこの前提の部分ですでに異なっている。
この点が重要。
JUnit4があるからTestNGは不要というわけではない。
そもそもJUnit4が出るまで、JUnitには課題があった。
たとえばTestCaseクラスを継承する必要があったり、例外をスローするテストメソッドが煩雑であったりすることだ。
その点をTestNGは(アンチテーゼとして)クリアしていたため、TestNGに有利な点があった。
アノテーションにも対応していた。
でもJUnit4でこれらの点は改善され、そういう意味でJUnitはTestNGと同等になった。
だからTestNGはもう不要、というわけではない。
フレームワークとしてカバーしている範囲が違うんだ。実装上の小さな差異だけが問題ではない。
このblogで少しずつTestNGのいいところを紹介していけたらと思う。