JUnit - Grundlegende Verwendung
Lassen Sie uns nun ein grundlegendes Beispiel geben, um den schrittweisen Prozess der Verwendung von JUnit zu demonstrieren.
Erstellen Sie eine Klasse
Erstellen Sie eine zu testende Java-Klasse, z. B. MessageUtil.java in C:\>JUNIT_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public String printMessage(){
System.out.println(message);
return message;
}
}
Erstellen Sie eine Testfallklasse
- Erstellen Sie eine Java-Testklasse, z. B. TestJunit.java.
- Fügen Sie Ihrer Testklasse eine Testmethode testPrintMessage () hinzu.
- Fügen Sie der Methode testPrintMessage () einen Annotaion @Test hinzu.
- Implementieren Sie die Testbedingung und überprüfen Sie die Bedingung mithilfe der assertEquals-API von JUnit.
Erstellen Sie einen Java-Klassendateinamen TestJunit.java in C:\>JUNIT_WORKSPACE.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
assertEquals(message,messageUtil.printMessage());
}
}
Erstellen Sie eine Testrunner-Klasse
- Erstellen Sie eine TestRunner-Java-Klasse.
- Verwenden Sie die runClasses-Methode der JUnitCore-Klasse von JUnit, um den Testfall der oben erstellten Testklasse auszuführen.
- Ruft das Ergebnis von Testfällen ab, die im Ergebnisobjekt ausgeführt werden.
- Fehler mit der Methode getFailures () des Ergebnisobjekts abrufen.
- Erhalten Sie das Erfolgsergebnis mit der wasSuccessful () -Methode des Ergebnisobjekts.
Erstellen Sie eine Java-Klassendatei mit dem Namen TestRunner.java in C:\>JUNIT_WORKSPACE Testfälle ausführen.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Kompilieren Sie die Klassen MessageUtil, Test Case und Test Runner mit javac.
C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java
Führen Sie nun den Test Runner aus, der den in der bereitgestellten Testfallklasse definierten Testfall ausführt.
C:\JUNIT_WORKSPACE>java TestRunner
Überprüfen Sie die Ausgabe.
Hello World
true
Aktualisieren Sie jetzt TestJunit in C:\>JUNIT_WORKSPACEdamit der Test fehlschlägt. Ändern Sie die Nachrichtenzeichenfolge.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
message = "New Word";
assertEquals(message,messageUtil.printMessage());
}
}
Lassen Sie uns den Rest der Klassen unverändert lassen und versuchen, denselben Test Runner auszuführen.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Führen Sie nun den Test Runner aus, der den in der bereitgestellten Testfallklasse definierten Testfall ausführt.
C:\JUNIT_WORKSPACE>java TestRunner
Überprüfen Sie die Ausgabe.
Hello World
testPrintMessage(TestJunit): expected:<[New Wor]d> but was:<[Hello Worl]d>
false