Question

Bien que je l'ai programmé avec Java pour environ 3 ans + maintenant (pas au jour le jour, mais au moins je comprends les fondamentaux), n'ont pas vraiment venir dans le domaine des tests unitaires ...

Mon travail est maintenant plus d'essais / Analyse des problèmes orientée, donc je compte un bon cadre Unité Java Test sera très utile à ce rôle.

De toute évidence il n'y a pas de règle formelle dont le cadre pour aller dans mon équipe. Il suffit donc de se demander, en tant que débutant, quel cadre est un bon pour commencer rapidement?

Junit?

TestNG?

ou autre chose?

Edit: il semble JUnit a plus de livres imprimés comme des références par rapport à TestNG sur Amazon. Mais je ne sais pas leur popularité / tendance en Java industrie comme pour l'instant.

Était-ce utile?

La solution

Je suis le créateur de TestNG et auteur du livre « Next Generation Testing », voici donc quelques (évidemment biaisées) pensées.

Pour fonctionnel (ou bout à bout / intégration / système, quel que soit le terme que vous préférez) test, TestNG propose quelques fonctionnalités qui JUnit ne dispose pas et que les utilisateurs ont trouvé très utile:

  • Groupes

    . Une fois que vous avez compilé vos tests, vous pouvez simplement demander TestNG d'exécuter tous les tests "front-end" ou "rapide", "lent", "base de données", etc ...

  • Soutien aux tests multithread. Cela a deux significations différentes:

1) Vous pouvez dire TestNG pour exécuter tous vos tests en même temps dans les pools de threads que vous définissez (un changement de ligne dans un fichier XML). Ceci est très configurable afin que les tests qui ne sont pas multithread peuvent encore être exécutés en fils simples.

2) Vous pouvez dire TestNG pour appeler vos méthodes n fois tests de fils de p. Cela vous donne une bonne idée de la façon dont le code fil que vous testez est sûr.

  • dépendances d'essai et l'ordre déterministe. Ceci est très utile pour les tests d'intégration où il est très fréquent de voir les méthodes d'essai qui ont besoin de méthodes d'essai avant de réussir avant même de courir. TestNG est très populaire dans la communauté Sélénium pour cette raison spécifique ( « ne vous embêtez pas tester cette page de mon site web si le test de connexion a échoué »).

Un autre avantage immédiat des dépendances de test est que TestNG peut vous dire « 1 méthode a échoué, 99 méthodes sautées », ce qui est un résultat beaucoup plus précis que « 100 méthodes ont échoué ».

TestNG a beaucoup, beaucoup plus de fonctionnalités et je suis heureux de répondre à vos questions ici ou sur notre mailing-list ( http://groups.google.com/group/testng-users ).

Autres conseils

J'apprendrais TestNG avec Unitils . Couvert tous mes besoins tout le temps. Ajouter xmlunit et DBUnit et vous devriez être réglé depuis longtemps.

Pour être parfaitement honnête, je JUnit est bien plus populaire que TestNG, au moins là où je travaille et vis. Je sais que cela pourrait être un argument étrange, mais si je vous je parcourons un certain travail ajoute et voir quel cadre fait l'industrie dans votre région / pays favorable (par exemple, je vais JUnit à cause de cela, je veux dire sûr que je pourrais apprendre TestNG, il pourrait se révéler être mieux, mais à quoi bon me faire si tous les employeurs ont besoin de connaissances JUnit?).

Bien qu'il puisse sembler être un critère mesquin, toutes choses étant égales, il semble que les tendances de l'emploi favorise fortement JUnit.

http://www.indeed.com/jobtrends?q= TestNG% 2C + JUnit & l =

Les deux faire tout aussi bien leur travail, donc il n'y a pas de bonne ou mauvaise. Vous pouvez utiliser les deux en combinaison avec de nombreux cadres pour aider à soutenir votre développement.

Si vous avez besoin de travailler pour un client, vous pouvez apprendre celui qui vous attend à utiliser. Dans le cas contraire, la meilleure idée est de les essayer à la fois et trouver ce qui fonctionne le mieux pour vous.

Je l'ai utilisé à la fois et a constaté que pour les tests unitaires ne jUnit fonctionne très bien, mais en termes de tests système Je recommande TestNG. TestNG propose quelques fonctionnalités supplémentaires (comme le test paramétrique) et est très flexible. Par exemple, dans jUnit un test de défaut dans une suite signifie généralement que vous avez à votre suite réexécuter entière, mais TestNG vous pouvez simplement relancer le test qui a échoué. Heres un article vraiment bon décrivant les deux (son un peu biaisé vers TestNG bien)

http://www.ibm.com/developerworks /java/library/j-cq08296/index.html

JUnit est très bien pris en charge dans de nombreux IDE Eclipse, y compris, et JUnit 4 avec annotations est tout à fait agréable de travailler avec.

Sauf si vous avez des besoins spécifiques, alors allez-support d'outil, à savoir jUnit.

TestNG avec Unitils est vraiment super. Il couvre presque toutes les exigences. Unitils beaucoup de soutien de utils affirmation, Spring, Hibernate, cadres moqueurs, dbUtils etc.

Pour moi, il est juste une question de goût. Je l'ai utilisé personnellement jUnit par jour pendant plus de 5 ans maintenant et je suis très heureux avec elle, surtout avec la dernière version et sa fonction @Rule qui empêche mon équipe de ecrivais le même code à plusieurs reprises. Il intègre bien avec tous les outils que j'utilise tous les jours: IDE, construire, ... L'intégration continue

Junit est célèbre et les meilleurs outils de tests unitaires, je pense que vous et moi savons tous les deux Junit est si important pour que développeur Java modifie leur mode de codage comme contribution JUnit, vous pouvez apprendre quelques Junit comme la technologie de test unitaire de base ainsi que d'apprendre testng comme deuxième technologie d'essai de l'appareil.

Le lien suivant peut-être être utile pour vous! http://www.javarmi.com / 2010/08 / JUnit-4-tutorial-et-get-exemple de départ /

Junit est le meilleur endroit pour commencer. JUnit 4.x possède de nombreuses fonctionnalités riches comme les annotations, etc ainsi que son obtenir un bon soutien des cadres populaires comme le printemps.

Je pencherais pour JUnit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top