Unit-Testing der Java-Student-Klasse

JavaBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du mit dem JUnit-Testframework Einheitstests für eine einfache Student-Klasse schreibst. Das Projekt umfasst das Einrichten der Testumgebung, das Schreiben von Testfällen für die get- und set-Methoden der Student-Klasse und die Verifizierung der Korrektheit der Implementierung.

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die JUnit-Abhängigkeit in das Projekt importierst
  • Wie du die StudentTest-Klasse einrichtest und ein Student-Objekt für das Testen initialisierst
  • Wie du Testfälle für die get-Methoden der Student-Klasse schreibst
  • Wie du Testfälle für die set-Methoden der Student-Klasse schreibst

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Eine Testumgebung mit Maven und JUnit einzurichten
  • Effektive Einheitstests für eine Java-Klasse zu schreiben
  • Die Korrektheit der Implementierung mit Testfällen zu verifizieren
  • Beste Praktiken für das Schreiben von wartbarem und zuverlässigem Code anzuwenden

JUnit-Dependency importieren

In diesem Schritt lernst du, wie du die JUnit-Abhängigkeit in das Projekt importierst.

  1. Öffne die pom.xml-Datei im Verzeichnis ~/project/StudentClass.
  2. Füge die folgende Abhängigkeit innerhalb des <dependencies>-Abschnitts hinzu:
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

Dies fügt die JUnit 4-Abhängigkeit hinzu, die für das Schreiben und Ausführen der Einheitstests erforderlich ist.

Student-Testklasse einrichten

In diesem Schritt lernst du, wie du die StudentTest-Klasse einrichtest und ein Student-Objekt für das Testen initialisierst.

  1. Öffne die StudentTest.java-Datei im Verzeichnis ~/project/StudentClass/src/test/java/com/labex.
  2. Füge die folgende mit @Before annotierte Methode zur StudentTest-Klasse hinzu:
private Student studentTest;

@Before
public void setUp() {
    studentTest = new Student("Tom", "male", 25);
}

Diese setUp()-Methode wird vor jeder Testmethode ausgeführt und erstellt ein neues Student-Objekt mit dem angegebenen Namen, Geschlecht und Alter.

Tests für die Get- und Set-Methoden schreiben

In diesem Schritt wirst du Tests schreiben, um die get- und set-Methoden der Student-Klasse zu verifizieren.

  1. Füge die folgenden Testmethoden zur StudentTest-Klasse hinzu:
@Test
public void testGetName() {
    assertEquals("Tom", studentTest.getName());
}

@Test
public void testGetAge() {
    assertEquals(25, studentTest.getAge());
}

@Test
public void testGetSex() {
    assertEquals("male", studentTest.getSex());
}

Diese Tests stellen sicher, dass die getName(), getAge() und getSex()-Methoden der Student-Klasse richtig funktionieren.

  1. Füge die folgenden Testmethoden zur StudentTest-Klasse hinzu:
@Test
public void testSetName() {
    studentTest.setName("Jimmy");
    assertEquals("Jimmy", studentTest.getName());
}

@Test
public void testSetAge() {
    studentTest.setAge(26);
    assertEquals(25, studentTest.getAge()); // Age sollte unverändert bleiben
}

@Test
public void testSetSex() {
    studentTest.setSex("female");
    assertEquals("female", studentTest.getSex());
}

Diese Tests stellen sicher, dass die setName(), setAge() und setSex()-Methoden der Student-Klasse richtig funktionieren.

Den Testfall ausführen

Um den Testfall auszuführen, folge diesen Schritten:

  1. Öffne in deiner Konsole den StudentClass-Projektordner mit dem folgenden Befehl:
cd ~/project/StudentClass/
  1. Führe den folgenden Befehl aus, um den Testfall auszuführen:
mvn test

Die Ausgabe sollte ähnlich der folgenden sein:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.StudentTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 s - in com.labex.StudentTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.237 s
[INFO] Finished at: 2024-05-12T12:23:30Z
[INFO] ------------------------------------------------------------------------

Diese Tests stellen sicher, dass die Methoden der Student-Klasse, wie getName, getAge, getSex, setName, setAge und setSex, richtig funktionieren, indem sie ihr erwartetes Verhalten durch Assertions validieren.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben