JUnitはTestNGよりも多く採用され拡張されているものの、TestNGの方が多くの機能を提供し、JUnit用のテスト(スクリプト)を実行することも可能なので、テスト・フレームワークとしてTestNGを選択する方が魅力的な選択に思えるようである。
InfoQ: JUnitは死なず
僕は時代の生き証人ではないけど、JUnitって名前が独り歩きし過ぎてる気がする。
たしかにJUnitによってユニットテスト、自動テストといったコンセプトが広く知れ渡るようになったんだし、JUnitの功績は計り知れない。
テスティングフレームワークとしてデファクトの地位を確立しているわけだけど、
その圧倒的なネームバリューのせいか、プロジェクトにおけるテスティングフレームワークは熟考なしにJUnitになってしまう。
別に機能が多ければいいというわけではないので、TestNGを使え!っていうつもりもないんだけど、熟考なし、条件反射的に何も考えず選択をするっていうのは必ずよくないことになる。
つまり、テスティングフレームワークとして今回のプロジェクトでJUnitが適切なのか、TestNGが適切なのか、それとも他のフレームワークが適切なのかといったことをきちんと考えた上で選択しているのか、ということ。
(プロジェクトにおいて最大の罪は前もこうだったとかいつもこれだとか、今回何が適切なのかを深く考えずに決定を下すことだと思ってる。これをなくすだけでしょーもない失敗プロジェクトは減ると個人的に思い込んでる。)
そのためにはJUnitのほかにどんなテスティングフレームワークがあるのか知らないといけないし、どんな特徴があるのか、長短知らないといけない。
JUnitのネームバリューがここんとこを妨げてるんじゃないかなと思う。