Heim  >  Artikel  >  Java  >  Testgetriebene Entwicklung mit JUnit5 und Mockito

Testgetriebene Entwicklung mit JUnit5 und Mockito

王林
王林nach vorne
2023-08-19 23:57:071483Durchsuche

Testgetriebene Entwicklung mit JUnit5 und Mockito

Test Driven Development (TDD) ist eine Softwareentwicklungsmethode, bei der Tests vor dem eigentlichen Code geschrieben werden. TDD hat aufgrund seines Schwerpunkts auf Codequalität und Wartbarkeit große Aufmerksamkeit erlangt. In diesem Artikel wird untersucht, wie man TDD mithilfe von JUnit5 und Mockito, zwei leistungsstarken Frameworks im Java-Ökosystem, effektiv implementiert.

Was ist testgetriebene Entwicklung?

Testgetriebene Entwicklung (Testgetriebene Entwicklung) ist ein iterativer Entwicklungsprozess. Entwickler schreiben zunächst Testfälle für neue Funktionen oder Features, schreiben dann die Mindestmenge an Code, um den Test zu bestehen, und überarbeiten den Code schließlich zur Optimierung. Dieser Ansatz verbessert das Design, reduziert Fehler und verbessert die allgemeine Wartbarkeit des Codes.

JUnit5 und Mockito verstehen

JUnit5 ist die neueste Version von JUnit, einem weit verbreiteten Unit-Testing-Framework in Java. Es führt mehrere neue Funktionen und Verbesserungen ein, die das Testen in Java einfacher und flexibler machen.

Mockito hingegen ist ein Mocking-Framework zum Erstellen von Scheinobjekten und zum Definieren ihres Verhaltens, das zum Testen von Code mit externen Abhängigkeiten nützlich ist.

Testgetriebene Entwicklung mit JUnit5 und Mockito

Schritt 1: Schreiben Sie einen nicht bestandenen Test

Der erste Schritt bei TDD besteht darin, einen Test zu schreiben, der fehlschlägt. Zu diesem Zweck definieren wir in JUnit5 eine mit @Test -

annotierte Methode
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class ExampleTest {

   @Test
   void shouldReturnTrueWhenNumberIsEven() {
       Example example = new Example();
       boolean result = example.isNumberEven(3);
       assertTrue(result);
   }
}

Dieser Test wird zunächst fehlschlagen, da wir die isNumberEven-Methode nicht in der Beispielklasse implementiert haben.

Nach einem fehlgeschlagenen Test schreiben wir gerade genug Code, um den Test zu bestehen. Zum Beispiel -

class Example {

   boolean isNumberEven(int num) {
       return num % 2 == 0;
   }
}

Führen Sie den Test erneut aus und wir sollten sehen, dass der Test bestanden wird, da die Methode isNumberEven jetzt korrekt prüft, ob eine Zahl gerade ist.

Schritt 3: Refaktorieren Sie den Code

Der letzte Schritt besteht darin, den Code zu verfeinern und zu optimieren, ohne sein Verhalten zu ändern. Obwohl unser Beispiel sehr einfach ist und möglicherweise kein Refactoring erfordert, kann dieser Schritt in komplexeren Fällen die Reduzierung der Redundanz, die Verbesserung der Lesbarkeit oder die Optimierung der Leistung umfassen.

Die chinesische Übersetzung von

Mocking with Mockito

lautet:

Verwenden Sie Mockito für Simulationstests

Verwenden Sie Mockito, um Scheinobjekte zu erstellen, wenn die zu testende Methode externe Abhängigkeiten beinhaltet. Dadurch können Methoden isoliert getestet werden −

import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;

class ExampleTest {

   @Test
   void shouldCallDependency() {
       // Arrange
       Dependency dependency = Mockito.mock(Dependency.class);
       Example example = new Example(dependency);

       // Act
       example.performAction();
		
       // Assert
       verify(dependency, times(1)).action();
   }
}

In diesem Test erstellen wir ein simuliertes Abhängigkeitsobjekt und überprüfen, ob die Aktionsmethode einmal aufgerufen wird, wenn wir die performAction-Methode für das Beispielobjekt aufrufen.

Fazit

Testgetriebene Entwicklung bietet in Kombination mit JUnit5 und Mockito eine solide Grundlage für das Schreiben von qualitativ hochwertigem, wartbarem Code. Durch das Verständnis des TDD-Zyklus und die effektive Nutzung dieser Frameworks können Entwickler ihre Testfähigkeiten und Codequalität erheblich verbessern.

Das obige ist der detaillierte Inhalt vonTestgetriebene Entwicklung mit JUnit5 und Mockito. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen