Wir sind bereits mit dem vertraut JUnit Testrahmen. Es wird verwendet, um Unit-Tests in Java durchzuführen. Der JUnit-Testfall ist der Codesatz, der sicherstellt, ob unser Programmcode wie erwartet funktioniert oder nicht.
In Java sind zwei Arten von Unit-Tests möglich: manuelle Tests und automatisierte Tests. Manuelles Testen ist eine spezielle Art des Testens, bei dem die Testfälle ohne Verwendung eines Tools ausgeführt werden. Im Gegensatz zum manuellen Testen ist automatisiertes Testen ohne die Unterstützung eines Tools nicht möglich.
Der org.junit Das Paket stellt mehrere Klassen und Pakete bereit, wodurch wir sicherstellen können, ob unser Code die erwartete Ausgabe liefert oder nicht. Diese Pakete und Klassen sind Assert, After, Before und Test usw.
Wir werden das Eclipse-Tool verwenden, um den Java-Code zu testen. Wir erstellen zunächst den Java-Code, den wir testen möchten, und schreiben anschließend die Testklasse oder den Testfall für unseren Java-Code.
Nehmen wir das Beispiel eines JUnit-Testfalls, um zu verstehen, wie Tests tatsächlich in Java durchgeführt werden.
JunitTestCaseExample.java
package JavaTpoint. JunitExamples; import java.util.ArrayList; import java.util.List; public class JunitTestCaseExample { private List students = new ArrayList(); public void remove(String name) { students.remove(name); } public void add(String name) { students.add(name); } public void removeAll(){ students.clear(); } public int sizeOfStudent() { return students.size(); } }
TestJunitTestCaseExample.java
package JavaTpoint.JunitExamples; import static org.junit.Assert.assertEquals; import org.junit.Test; public class TestJunitTestCaseExample { JunitTestCaseExample obj = new JunitTestCaseExample(); @Test public void testAdd() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); obj.add('Paul'); assertEquals('Adding 4 student to list', 4, obj.sizeOfStudent()); } @Test public void testSize() { obj.add('Emma'); obj.add('Ronan'); obj.add('Antonio'); assertEquals('Checking size of List', 3, obj.sizeOfStudent()); } @Test public void testRemove() { obj.add('Antonio'); obj.add('Paul'); obj.remove('Paul'); assertEquals('Removing 1 student from list', 1, obj.sizeOfStudent()); } @Test public void removeAll() { obj.removeAll(); } }
TestRunner.java
package JavaTpoint.JunitExamples; import org.junit.runner.Result; import org.junit.runner.JUnitCore; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJunitTestCaseExample.class); for (Failure fail : result.getFailures()) { System.out.println(fail.toString()); } System.out.println(result.wasSuccessful()); } }
Erläuterung
Wir haben drei Java-Klassen erstellt, d. h. JunitTestCaseExample.java, TestJunitTestCaseExample.java , Und TestRunner .Java. Im JunitTestCaseExample.java Klasse haben wir den Code erstellt, den wir testen möchten. In dieser Klasse erstellen wir eine Liste mit Namen und vier Methoden, um ein Element hinzuzufügen, ein Element zu entfernen, die Größe der Liste zu ermitteln und alle Elemente aus der Liste zu entfernen.
Im TestJunitTestCaseExample.java schreiben wir die Testfälle für die Klasse JunitTestCaseEample.java. Wir erstellen ein Objekt der JunitTestCaseExample.java Klasse, und indem wir ihr Objekt verwenden, werden wir alle ihre Methoden testen. Wir benutzen das behauptenEquals() Methode, um das tatsächliche Ergebnis mit der erwarteten Ausgabe zu vergleichen.
Wir erstellen die Klasse TestRunner.java, um die Testfälle auszuführen. Es enthält die Methode main(), in der wir die Klasse TestJunitTestCaseExample.java mit der Methode runClasses() des JUnitCore ausführen. In dieser Methode übergeben wir die Klassendatei von TestJunitTestCaseExample.java. Das von der runClasses()-Methode zurückgegebene Ergebnis wird in der Ergebnisvariablen vom Typ „Result“ gespeichert.
Jetzt führen wir die Klasse TestRunner.java aus, um die Testfälle auszuführen. Wir erhalten die Ausgabe „true“, wenn die Testfälle bestanden wurden, und „false“, wenn die Testfälle nicht bestanden wurden.
Ausgabe