1. ホーム
  2. unit-testing

[解決済み] JUnit 4 vs TestNG - 2013年~2014年最新情報 [終了しました。]

2023-04-12 20:17:51

質問

JUnit 4とTestNGはかつて比較されたことがあります。この2つのテストフレームワークの長所と短所は何でしょうか?

どのように解決するのですか?

今日、TestNGとJUnit4を比較していたのですが、私のテストフレームワークの限られた経験で指摘できる主な利点は、TestNGはデータプロバイダの概念でパラメトリックテストを扱うよりエレガントな方法を持っているということです。

私が知る限り、JUnit4では、テストしたいパラメータのセットごとに個別のテストクラスを作成する必要があります。 @RunWith(Parameterized.class) ). TestNGでは、1つのテストクラスで複数のデータプロバイダを持つことができるので、1つのクラスに対するすべてのテストを1つのテストクラスで管理することができます。

今のところ、JUnit4に対するTestNGの利点として指摘できるのはこれだけです。

Intellij IDEAは、TestNGとJUnitのサポートを最初から含んでいます。しかし、EclipseはJUnitのみをサポートし、動作させるためにはTestNGプラグインをインストールする必要があります。

しかし、私がTestNGで遭遇したより厄介な問題は、テストクラスが PowerMockTestCase を拡張する必要があることです。どうやら、PowerMock を使用する際にテストフレームワークが知る必要のあるオブジェクトファクトリーを設定する方法があるようで、特別なメソッドを介して、もしくは testng.xml スイート定義を通じて、PowerMockを使用する際に知っておくべきオブジェクトファクトリーを設定する方法があるようですが、今のところ壊れているようです。私は、テストクラスがテストフレームワーククラスを拡張することが嫌いです、それはハッキングのように思えます。

PowerMockを使わなければもちろん問題ないのですが、全体的にJUnit4の方がサポートが充実している印象があります。