Questions et réponses de l'entretien Junit [Pour les débutants et les expérimentés]
Publié: 2020-09-22JUnit est une excellente solution pour les développeurs travaillant avec le langage de programmation Java. Il peut être utilisé pour implémenter des tests unitaires ainsi que des tests d'interface utilisateur. C'est l'une des compétences les plus recherchées par les organisations qui cherchent à améliorer la qualité de leur code et leur vitesse de programmation. Cet article discuterait des questions d'entretien JUnit standard pour vous aider à vous préparer et à figurer sur cette liste restreinte !
Top 15 des questions et réponses des entretiens JUnit
1. Qu'est-ce que JUnit ?
JUnit est un framework utilisé pour effectuer des tests unitaires de code Java. Il est considéré comme la base des tests côté développeur sur le moteur JVM. Par conséquent, JUnit fait partie intégrante du domaine de la programmation et du développement piloté par les tests.
2. Qu'entendez-vous par tests et tests unitaires ?
Le test est le processus qui consiste à vérifier si l'application répond aux exigences et atteint les fonctionnalités souhaitées. Les tests unitaires font référence à l'évaluation d'une fonctionnalité individuelle ou d'une unité de l'application.
3. Faites la différence entre les tests manuels et automatisés.

Les tests manuels sont exécutés sans scripts de test et nécessitent un effort humain dédié pour les différentes étapes impliquées. D'autre part, les tests automatisés peuvent être effectués sans assistance humaine à l'aide d'outils technologiques et de logiciels. L'automatisation des tests est moins chère et prend moins de temps que les tests manuels. De plus, les tests manuels sont moins fiables car ils ne peuvent pas être programmés.
4. Devez-vous écrire un scénario de test pour chaque logique ?
Un cas de test est un code écrit pour établir la logique d'un programme. Dans JUnit, il n'est pas nécessaire d'écrire un cas de test pour chaque logique, mais uniquement pour celles qui peuvent être raisonnablement cassées.
Un cas de test unitaire comprendrait une collection de données d'entrée et de sortie attendue. Le package org.junit contient plusieurs classes et interfaces pour vous aider dans les tests unitaires, telles que Assert, Test, Before, After, etc.
5. Citez quelques exemples d'outils avec lesquels vous pouvez intégrer JUnit ?
JUnit est un framework convivial pour le développement Java. Il peut être facilement étendu et intégré à Eclipse IDE, Apache Ant et Maven.
6. Énumérez quelques extensions JUnit utiles et expliquez leur objectif.
Il existe quatre principales extensions JUnit, à savoir Cactus, JWebUnit, XMLUnit et MockObject. Nous avons décrit leurs utilisations en détail ci-dessous.
- Cactus : il s'agit d'un cadre de test de code Java côté serveur qui implémente des tests à l'intérieur d'un conteneur. L'écosystème de cactus comprend deux composants, à savoir le Cactus Framework et les modules d'intégration de Cactus. Le framework est le moteur qui fournit l'API pour l'écriture des tests, tandis que les modules d'intégration s'occupent du front-end avec l'aide des plugins.
- JWebUnit : ce framework basé sur Java fournit une interface de test unifiée en combinant les fonctionnalités de HtmlUnit et de Selenium. JWebUnit facilite la navigation dans les applications Web via des liens, la validation du contenu des tableaux, la saisie et la soumission de formulaires et d'autres fonctionnalités. En plus de l'API Java de haut niveau, il permet la création rapide de tests avec ses assertions prêtes à l'emploi.
- XMLUnit : Il offre une seule classe d'extension appelée XMLTestCase. XMLUnit fournit également des classes de support qui permettent des affirmations sur la validité d'un élément XML (classe Validator), les différences entre deux éléments XML (Diff et DetailsDiff), le résultat de la transformation XML (classe Transformer), entre autres.
- MockObject : lorsqu'il est impossible ou irréalisable d'inclure des objets réels dans un test unitaire, les objets fictifs peuvent s'avérer une aubaine. Vous pouvez simuler le comportement d'objets complexes et les incorporer avec les étapes de codage suivantes :
- Créer des instances d'objets fictifs
- Définir l'état et les attentes
- Appeler le code de domaine en utilisant des objets fictifs comme paramètres
- Vérifier la cohérence
7. Comment testez-vous les méthodes 'protégées' et 'privées' ?
Dans la méthode protégée, la classe de test et la classe cible sont déclarées dans le même package. Cependant, dans la méthode privée, il n'y a pas de moyen direct de test. Soit vous devez changer votre méthode en 'protected' ou faire le test manuellement.
8. Que se passe-t-il dans JUnit lorsque le type de retour est « string » ?
Dans cette situation, la compilation réussirait, mais l'exécution échouerait. Cela se produirait parce que toutes les méthodes de test JUnit sont conçues pour renvoyer « void ».
9. Définir (i) les luminaires (ii) la combinaison de test (iii) le testeur (iv) les classes JUnit
(i) Les montages sont utilisés comme référence pour l'exécution des tests, établissant la répétabilité des résultats. Un montage de test comprend un état fixe d'un ensemble d'objets. Les méthodes incluent :
- setUp() : il s'exécute avant un appel de test.
- tearDown() : il s'exécute après une méthode de test.
(ii) Test Runner : Il exécute les cas de test.

(iii) Classes JUnit : elles contiennent des méthodes à utiliser pour écrire et tester des JUnits.
(iv) Test Suite est un ensemble ou une collection de cas de tests unitaires à exécuter ensemble. Vous pouvez exécuter un test de suite dans JUnit avec @Suite ou l'annotation @RunWith.
Lire : Projet de système de gestion de bibliothèque en Java
10. Mentionnez quelques annotations JUnit fréquemment utilisées.
Les annotations sont simplement des méta-tags que vous pouvez ajouter à votre code. L'annotation @Test marque une méthode particulière comme méthode de test. Certaines autres annotations utiles incluent @Before, @BeforeClass, @After, et @AfterClass, et @Ignores. Pour implémenter un test JUnit, vous devez connaître l'importance de ces annotations. Alors, faisons connaissance avec eux un par un.
- Test : cette annotation indique à JUnit qu'il peut exécuter la méthode publique void en tant que cas de test. C'est essentiellement un remplacement pour org.junit.TestCase
- Avant : si vous souhaitez exécuter des instructions (par exemple, des conditions préalables) avant un cas de test particulier, vous utilisez @Before. Cette annotation vous permet d'exécuter des objets similaires avant les méthodes de test.
- Avant la classe : vous pouvez utiliser l'annotation @BeforeClass dans JUnit pour exécuter des instructions avant tous les cas de test.
- Après : il entraîne l'exécution de certaines instructions après chaque cas de test, telles que la suppression de fichiers temporaires, la réinitialisation de variables, etc.
- After Class : L'annotation @AfterClass vous permet d'exécuter des instructions après tous les cas de test. Par exemple, la libération de toutes les ressources une fois l'exécution terminée.
- Ignorer : Il est utilisé pour ignorer certaines instructions lors de l'exécution. Par exemple, désactiver les scénarios de test.
Lire aussi : Questions d'entretien Java
11. Expliquez les différents types de classes JUnit.
Assert, TestCase et TestResult sont quelques-unes des classes essentielles de JUnit. Assert fournit des méthodes aux cas de test. TestCase contient un cas de test, définissant le dispositif pour exécuter plusieurs tests. TestResult inclut des méthodes pour collecter les résultats.
12. Quand écrivez-vous un test unitaire ?
Dans un cycle de développement typique, les tests unitaires sont écrits avant le code. Cette pratique permet aux développeurs de maintenir la qualité de leur code.
13. Pourquoi devriez-vous vous abstenir d'utiliser System.out.printIn() pour le débogage ?
Si vous utilisez System.out.printIn() pour déboguer votre code, cela en bénéficiera à long terme. Chaque fois que le programme est exécuté, cela entraînerait une analyse manuelle de l'ensemble de la sortie pour s'assurer que le code fonctionne correctement. Ainsi, il faudrait relativement moins de temps pour coder les méthodes JUnit et effectuer des tests sur les fichiers de classe.
14. Où vont les déchets de test dans JUnit ?
Le testeur détient les références pendant toute la durée du test. Dans le cas d'un test étendu comportant de nombreuses instances de test, les déchets peuvent ne pas être collectés avant la fin de l'exécution du test. Nous pouvons utiliser tearDown() pour collecter les ordures avant la fin du test. Dans cette méthode, nous définissons explicitement un objet sur null.
15. Comment installer Junit ?

La première étape consiste à télécharger JUnit 5, la dernière version de JUnit (ce serait un fichier nommé junit.zip). Nous serions obligés de décompresser le fichier de distribution dans un répertoire, %JUNIT_HOME%. Ensuite, nous ajouterions JUnit au classpath.
Ensuite, nous testons l'installation. Cela impliquerait d'exécuter des exemples de tests (situés non pas dans le fichier junit.jar, mais dans le répertoire d'installation) distribués avec Junit. Enfin, nous confirmons que tous les tests passent avec un message "OK". S'ils ne le font pas, nous reviendrons en arrière et vérifierons si junit.jar est dans le classpath.
Consultez : Comment coder, compiler et exécuter des projets Java
Conclusion
Avec les questions d'entretien JUnit ci-dessus, vous pouvez rafraîchir vos concepts en vue des emplois de développeur. Des postes tels que Test Automation Engineer et Software Engineer incluent également JUnit dans leurs compétences souhaitées. Les recruteurs veulent évaluer vos connaissances techniques et votre capacité de communication. Ainsi, le contenu de votre réponse et la façon dont vous la présentez feront toute la différence.
Si vous souhaitez en savoir plus sur le développement de logiciels à pile complète, consultez le diplôme PG upGrad & IIIT-B en développement de logiciels à pile complète qui est conçu pour les professionnels en activité et offre plus de 500 heures de formation rigoureuse, plus de 9 projets et affectations, statut d'anciens élèves de l'IIIT-B, projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.