Sondage : Quels frameworks de tests unitaires et de mock
Utilisez-vous en Java, et pourquoi ?

Le , par Ricky81, Expert éminent sénior
Bonjour,

Nous aimerions sonder la communauté sur l'utilisation des frameworks de tests unitaires et de mock les plus utilisés, et bien sur les avantages / inconvénients que vous y voyez.

Voici la liste que nous vous proposons :


Sont exclus du sondage les autres frameworks dits xUnit et les frameworks qui se destinent plutôt aux tests d'intégration tel Spring Test Support, mais nous reviendront dessus dans un sondage ultérieur.

Merci pour votre participation


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de michel.di michel.di - Membre éprouvé http://www.developpez.com
le 17/12/2009 à 23:44
Pour ma part j'utilise JUnit et Mockito. Je les trouve très simple à utiliser. Je ne peux pas comparer je n'ai pas testé les autres!
Avatar de gronono gronono - Membre confirmé http://www.developpez.com
le 18/12/2009 à 0:29
J'ai voté unitils, junit et easymock.
Pourquoi ? Parce qu'unitils nous permet de simplifier les TUs dans un contexte Hibernate et Spring.
Il intègre DBUnit permettant de tester les DAO et EasyMock pour mocker les appels aux DAO et autres managers.

Il est simple d'emploi et efficace.
Avatar de Steph82 Steph82 - Membre actif http://www.developpez.com
le 18/12/2009 à 12:13
Idem que Gronono, EasyMock, Unitils et Junit.

Simple d'utilisation pour tester les DAO avec DBUnit et HSQLDB.
Avatar de eclesia eclesia - Rédacteur http://www.developpez.com
le 18/12/2009 à 13:58
Junit seulement pour moi.
Pas d'outil "mock".
Avatar de Frankyfred Frankyfred - Futur Membre du Club http://www.developpez.com
le 18/12/2009 à 15:15
idem que eclesia, mais je vais me pencher sur easyMock ou mockito
Avatar de TheNOHDirector TheNOHDirector - Membre du Club http://www.developpez.com
le 18/12/2009 à 18:02
JUnit parce que c'est très bien supporté, mais je ne verrais pas de problèmes à essayer TestNG.

Pour les mock, pour le moment mon choix est arrêté sur mockito, il offre une API plus simple mais plus expressive que EasyMock. Et le projet Mockito est assez réactif.
Pour le compléter sur la testabilité de code intestable (constructeur, méthodes private/final/static, etc...) il y a un complément qui s'appelle powermock. Ce dernier remplace avantageusement JMock ou JMockit. Et en plus il s'intègre à mockito ou easymock.

J'utilise aussi Unitils qui simplifie énormement l'utilisation de DBUnit, celà dit le framework a encore quelques bug et un support inexistant de mockito, mais il murit.
Avatar de kerflyn kerflyn - Membre à l'essai http://www.developpez.com
le 18/12/2009 à 18:15
JUnit 4.7+ : orienté POJO, @Rule en particulier ExpectedException, intégration de Hamcrest (pour écrire des assertions comme on écrirait en anglais)

Mockito : élégant, simple, BDD-compliant (Behavior Driven Development)
Avatar de loicmidy loicmidy - Membre régulier http://www.developpez.com
le 20/12/2009 à 8:46
au travail nous utilisons Junit.
Pour la librairie de mock nous testons en ce moment easyMock et Mockito.
Pour ma part je préfère Mockito qui est plus concis et plus clair. Voici 2 références sur ce sujet (mais la première est du concepteur de Mockito)

http://monkeyisland.pl/2008/04/26/asking-and-telling/
http://hamletdarcy.blogspot.com/2007...ent-spies.html
Avatar de MigouW MigouW - Membre actif http://www.developpez.com
le 23/12/2009 à 12:48
Seulement Junit pour moi, la raison, parce que c'est celui que l'on utilisait en cours et en entreprise
Avatar de foucha foucha - Membre actif http://www.developpez.com
le 30/12/2009 à 23:20
JUnit parce que c'était fourni avec Eclipse et que c'etait le plus connu.

En framework de mock : JMock, puis JMockit, puis Mockito.

JMock était clair, la cheetsheat du site est nickele, par contre on avait des besoins qu'il ne comblait pas, en particulier sur notre code legacy. On voulait aussi mocker autre chose que des interfaces (oui c'est vrai c'est possible avec JMock mais il faut magouiller un peu je crois?), et JMockit permettait de mocker des blocs statics et des méthodes statiques. Et des constructeurs. Par rapport aux autres frameworks, il est basé sur l'instrumentation.

Le besoin le plus fréquent ca a été de devoir mocker une classe qui n'était ni un parametre ni un attribut de la classe, en gros elle est innacessible, l'instanciation a lieu DANS la méthode. JMockit permet de redéfinir la classe : a la place de A, tu utiliseras mon mock Abis.

L'avantage de Mockito, c'est quand le code est propre et testable : il est plus parlant que JMockit, les tests sont plus lisibles.
Avatar de leminipouce leminipouce - Membre éprouvé http://www.developpez.com
le 28/02/2012 à 14:08
TestNG parceque les annotations et les fonctionnalités qui vont avec qu'il fournit sont à mon goût largement meilleurs que celles de JUnit 4 : @BeforeTest, déclarations de groupes (génial pour distinguer les TU des tests d'intégrations...) @BeforeGroup, ...

EasyMock et Unitils... parce qu'ils m'ont été imposés
Unitils avec ses annotations ajoute un vrai plus à EasyMock et le rend nettement plus simple et convivial à utiliser.
Offres d'emploi IT
Expert technique .Net (H/F)
Atos Technology Services - Provence Alpes Côte d'Azur - Aix en Provence
Développeur .net
ITIZ - Midi Pyrénées - Toulouse (31000)
Ingénieur Etudes et Développement JAVA H/F
EXPERIS IT - Ile de France - Saint-Denis 93200)

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -