J'ai été en comparant TestNG et JUnit4 aujourd'hui, et le principal avantage que je peux sortir avec mon expérience limitée dans le test-cadres est qu'TestNG a une façon plus élégante de la manipulation paramétrées tests avec les données du fournisseur de concept.
Aussi loin que je peux dire avec JUnit4 vous devez créer une classe de test pour chaque jeu de paramètres que vous voulez tester (ran avec @RunWith(Parameterized.class)
). Avec TestNG vous pouvez avoir plusieurs données-fournisseurs dans une seule classe de test, de sorte que vous pouvez garder tous vos tests pour une classe unique dans un seul test de la classe.
C'est pour l'instant la seule chose que je peux souligner un avantage de TestNG sur JUnit4.
Intellij IDEA inclut le support pour TestNG et JUnit hors de la boîte. Cependant, Eclipse ne supporte JUnit hors de la boîte et a besoin d'une installé le plugin TestNG pour le faire fonctionner.
Toutefois, une plus ennuyeux problème que j'ai rencontré avec TestNG est que vos classes de test nécessité d'étendre PowerMockTestCase
si vous utilisez PowerMock de se moquer des dépendances dans vos tests. Apparemment, il ya des façons de configurer l'objet d'usine de votre framework de test doit connaître lors de l'utilisation de PowerMock via une méthode spéciale, ou par l'intermédiaire de l' testng.xml
suite de définition, mais ceux qui semblent être brisé à l'instant. Je n'aime pas avoir de test-classes d'étendre test-cadre des classes, il semble hackish.
Si vous n'utilisez pas PowerMock ce n'est pas une question de cours, mais dans l'ensemble j'ai l'impression que JUnit4 est mieux pris en charge.