Junit Interview Fragen & Antworten [Für Anfänger & Erfahrene]
Veröffentlicht: 2020-09-22JUnit ist eine hervorragende Lösung für Entwickler, die mit der Programmiersprache Java arbeiten. Es kann verwendet werden, um Unit-Tests sowie UI-Tests zu implementieren. Es ist eine der gefragtesten Kompetenzen für Unternehmen, die ihre Codequalität und Programmiergeschwindigkeit verbessern möchten. In diesem Artikel werden die Standardfragen von JUnit-Interviews erörtert, um Ihnen bei der Vorbereitung und dem Erreichen dieser Shortlist zu helfen!
Die 15 wichtigsten Fragen und Antworten zu JUnit-Interviews
1. Was ist JUnit?
JUnit ist ein Framework, das zur Durchführung von Unit-Tests von Java-Code verwendet wird. Es gilt als Grundlage für entwicklerseitiges Testen der JVM-Engine. Daher ist JUnit aus dem Programmierbereich und der testgetriebenen Entwicklung nicht mehr wegzudenken.
2. Was verstehen Sie unter Tests und Unit-Tests?
Beim Testen wird überprüft, ob die Anwendung die Anforderungen erfüllt und die gewünschten Funktionalitäten erreicht. Unit-Tests beziehen sich auf die Bewertung einer einzelnen Funktionalität oder einer Einheit der Anwendung.
3. Unterscheiden Sie zwischen manuellem und automatisiertem Testen.

Manuelles Testen wird ohne Testskripte ausgeführt und erfordert für die verschiedenen beteiligten Schritte einen dedizierten menschlichen Einsatz. Andererseits können automatisierte Tests ohne menschliche Hilfe unter Verwendung von Technologiewerkzeugen und Softwareprogrammen durchgeführt werden. Testautomatisierung ist billiger und weniger zeitaufwändig als manuelles Testen. Außerdem ist das manuelle Testen weniger zuverlässig, da es nicht programmiert werden kann.
4. Muss man für jede Logik einen Testfall schreiben?
Ein Testfall ist ein Code, der geschrieben wird, um die Logik eines Programms festzulegen. In JUnit ist es unnötig, für jede Logik einen Testfall zu schreiben, sondern nur für diejenigen, die vernünftigerweise gebrochen werden können.
Ein Unit-Testfall würde eine Sammlung von Eingabedaten und erwarteten Ausgaben umfassen. Das org.junit-Paket enthält mehrere Klassen und Schnittstellen, die Ihnen beim Komponententest helfen, wie z. B. Assert, Test, Before, After usw.
5. Nennen Sie einige Beispiele für Tools, mit denen Sie JUnit integrieren können?
JUnit ist ein benutzerfreundliches Framework für die Java-Entwicklung. Es kann einfach erweitert und in Eclipse IDE, Apache Ant und Maven integriert werden.
6. Nennen Sie einige nützliche JUnit-Erweiterungen und erläutern Sie deren Zweck.
Es gibt vier Haupterweiterungen von JUnit, nämlich Cactus, JWebUnit, XMLUnit und MockObject. Ihre Verwendung haben wir weiter unten ausführlich beschrieben.
- Cactus: Es ist ein Framework zum Testen von serverseitigem Java-Code, das Tests in einem Container implementiert. Das Cactus-Ökosystem besteht aus zwei Komponenten, nämlich dem Cactus Framework und den Cactus Integration Modules. Das Framework ist die Engine, die die API zum Schreiben von Tests bereitstellt, während sich die Integrationsmodule mit Hilfe von Plugins um das Frontend kümmern.
- JWebUnit: Dieses Java-basierte Framework bietet eine einheitliche Testschnittstelle, indem es die Fähigkeiten von HtmlUnit und Selenium kombiniert. JWebUnit macht die Navigation in Webanwendungen über Links, die Überprüfung von Tabelleninhalten, die Eingabe und Übermittlung von Formularen und andere Funktionen zum Kinderspiel. Neben der High-Level-Java-API ermöglicht es mit seinen gebrauchsfertigen Behauptungen eine schnelle Testerstellung.
- XMLUnit: Es bietet eine einzige Erweiterungsklasse namens XMLTestCase. XMLUnit bietet auch unterstützende Klassen, die unter anderem Aussagen über die Gültigkeit eines XML-Teils (Validator-Klasse), Unterschiede zwischen zwei XML-Teilen (Diff und DetailedDiff), das Ergebnis der XML-Transformation (Transformer-Klasse) ermöglichen.
- MockObject: Wenn es unmöglich oder nicht praktikabel ist, reale Objekte in einen Komponententest einzubeziehen, können sich Mock-Objekte als Segen erweisen. Mit den folgenden Codierschritten können Sie das Verhalten komplexer Objekte simulieren und einbinden:
- Erstellen Sie Instanzen von Scheinobjekten
- Zustand und Erwartungen festlegen
- Rufen Sie Domänencode mit Scheinobjekten als Parameter auf
- Überprüfen Sie die Konsistenz
7. Wie testen Sie die Methoden „geschützt“ und „privat“?
In der geschützten Methode werden Testklasse und Zielklasse im selben Paket deklariert. Bei der privaten Methode gibt es jedoch keine direkte Testmöglichkeit. Entweder müssen Sie Ihre Methode auf „geschützt“ ändern oder den Test manuell durchführen.
8. Was passiert in JUnit, wenn der Rückgabetyp „string“ ist?
In dieser Situation würde die Kompilierung erfolgreich sein, aber die Ausführung schlägt fehl. Dies würde auftreten, weil alle JUnit-Testmethoden darauf ausgelegt sind, „void“ zurückzugeben.
9. Definieren Sie (i) Fixtures (ii) Test Suit (iii) Test Runner (iv) JUnit-Klassen
(i) Vorrichtungen werden als Grundlage für die Durchführung von Tests verwendet, um die Wiederholbarkeit der Ergebnisse festzustellen. Eine Testhalterung umfasst einen festen Zustand eines Satzes von Objekten. Zu den Methoden gehören:
- setUp(): Es wird vor einem Testaufruf ausgeführt.
- tearDown(): Es läuft nach einer Testmethode.
(ii) Test Runner: Er führt die Testfälle aus.

(iii) JUnit-Klassen: Sie enthalten Methoden, die zum Schreiben und Testen von JUnits verwendet werden.
(iv) Test Suite ist ein Bündel oder eine Sammlung von Unit-Testfällen, die zusammen ausgeführt werden sollen. Sie können einen Suite-Test in JUnit entweder mit @Suite oder der @RunWith-Annotation ausführen.
Lesen Sie: Bibliotheksverwaltungssystem-Projekt in Java
10. Nennen Sie einige häufig verwendete JUnit-Anmerkungen.
Anmerkungen sind einfach Meta-Tags, die Sie Ihrem Code hinzufügen können. Die Annotation @Test markiert eine bestimmte Methode als Testmethode. Einige andere nützliche Anmerkungen sind @Before, @BeforeClass, @After und @AfterClass sowie @Ignores. Um einen JUnit-Test zu implementieren, müssten Sie die Bedeutung dieser Anmerkungen kennen. Machen wir uns also nacheinander mit ihnen vertraut.
- Test: Diese Anmerkung teilt JUnit mit, dass es die öffentliche void-Methode als Testfall ausführen kann. Es ist im Grunde ein Ersatz für org.junit.TestCase
- Before: Wenn Sie vor einem bestimmten Testfall beliebige Anweisungen (z. B. Vorbedingungen) ausführen möchten, verwenden Sie das @Before. Mit dieser Anmerkung können Sie ähnliche Objekte vor Testmethoden ausführen.
- Before Class: Sie können die Annotation @ BeforeClass in JUnit verwenden, um Anweisungen vor allen Testfällen auszuführen.
- Nachher: Es bewirkt, dass nach jedem Testfall einige Anweisungen ausgeführt werden, z. B. um temporäre Dateien zu löschen, Variablen zurückzusetzen usw.
- After Class: Mit der Annotation @AfterClass können Sie Anweisungen nach allen Testfällen ausführen. Zum Beispiel die Freigabe aller Ressourcen nach der Ausführung.
- Ignorieren: Wird verwendet, um bestimmte Anweisungen während der Ausführung zu ignorieren. Zum Beispiel das Deaktivieren von Testfällen.
Lesen Sie auch : Java-Interviewfragen
11. Erklären Sie die verschiedenen Arten von JUnit-Klassen.
Assert, TestCase und TestResult sind einige der wichtigsten JUnit-Klassen. Assert stellt Methoden für die Testfälle bereit. TestCase enthält einen Testfall, der die Vorrichtung zur Ausführung mehrerer Tests definiert. TestResult enthält Methoden zum Sammeln der Ergebnisse.
12. Wann schreiben Sie einen Unit-Test?
In einem typischen Entwicklungszyklus werden Komponententests vor dem Code geschrieben. Diese Vorgehensweise ermöglicht es Entwicklern, die Qualität ihres Codes aufrechtzuerhalten.
13. Warum sollten Sie System.out.printIn() nicht zum Debuggen verwenden?
Wenn Sie System.out.printIn() verwenden, um Ihren Code zu debuggen, würde dies langfristig davon profitieren. Jedes Mal, wenn das Programm ausgeführt wird, würde dies zu einem manuellen Scannen der gesamten Ausgabe führen, um sicherzustellen, dass der Code korrekt funktioniert. Es würde also relativ weniger Zeit erfordern, JUnit-Methoden zu codieren und Klassendateien zu testen.
14. Wo landet der Testmüll in JUnit?
Der Testläufer behält die Referenzen für die Dauer des Tests. Bei einem erweiterten Test mit vielen Testinstanzen wird der Garbage möglicherweise erst am Ende des Testlaufs eingesammelt. Wir können das tearDown() verwenden, um den Müll zu sammeln, bevor der Testlauf abgeschlossen ist. In dieser Methode setzen wir ein Objekt explizit auf null.
15. Wie installiert man Junit?

Der erste Schritt besteht darin, JUnit 5 herunterzuladen, die neueste Version von JUnit (es wäre eine Datei mit dem Namen junit.zip). Wir müssten die Distributionsdatei in ein Verzeichnis %JUNIT_HOME% entpacken. Dann würden wir JUnit zum Klassenpfad hinzufügen.
Als nächstes würden wir die Installation testen. Dies würde das Ausführen von Beispieltests beinhalten (die sich nicht in der Datei junit.jar, sondern im Installationsverzeichnis befinden), die mit Junit verteilt werden. Abschließend würden wir mit einer „OK“-Meldung bestätigen, dass alle Tests bestanden wurden. Wenn dies nicht der Fall ist, würden wir zurückgehen und überprüfen, ob sich junit.jar im Klassenpfad befindet.
Schauen Sie sich an: Wie man Java-Projekte codiert, kompiliert und ausführt
Fazit
Mit den obigen JUnit-Interviewfragen können Sie Ihre Konzepte in Vorbereitung auf Entwicklerjobs auffrischen. Positionen wie Testautomatisierungsingenieur und Softwareingenieur umfassen auch JUnit in ihren gewünschten Fähigkeiten. Die Personalvermittler möchten Ihr technisches Wissen und Ihre Kommunikationsfähigkeit messen. Der Inhalt Ihrer Antwort und wie Sie sie präsentieren, würde also den Unterschied ausmachen.
Wenn Sie mehr über Full-Stack-Softwareentwicklung erfahren möchten, sehen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und mehr bietet Aufgaben, IIIT-B-Alumni-Status, praktische praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.
