Fight the Future

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

JavaのテスティングフレームワークはJUnitだけじゃないので

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

TestNGJUnitにインスパイアされたと同時にアンチテーゼとして作られてる。

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でこれらの点は改善され、そういう意味でJUnitTestNGと同等になった。


だからTestNGはもう不要、というわけではない。
フレームワークとしてカバーしている範囲が違うんだ。実装上の小さな差異だけが問題ではない。


このblogで少しずつTestNGのいいところを紹介していけたらと思う。