Mock-Objekte in Java

Zeeshan Afridi 11 Dezember 2023
Mock-Objekte in Java

Mock-Objekte helfen dabei, echte Objekte zu simulieren und zu verifizieren, ohne den echten Code in diesen Objekten auszuführen. Sie können ein Mock einrichten, um bestimmte Ergebnisse für die Methodenaufrufe zurückzugeben und einfach zu überprüfen, ob die Methode aufgerufen wurde oder nicht.

Wie oben besprochen, werden die Mock-Objekte für Unit-Tests verwendet. Wenn Sie ein Objekt haben, dessen Methoden Sie testen möchten, und diese Methoden von einigen anderen Objekten abhängig sind, können Sie in diesem Fall anstelle der tatsächlichen Instanz dieser Abhängigkeit ein Modell der Abhängigkeit erstellen und Ihre Objekte testen in Isolation.

Mock-Objekte in Java

Zu den gängigen Java-Frameworks für die Erstellung von Mock-Objekten gehören JMock und EasyMock. Mit diesen beiden Frameworks können Sie im Allgemeinen Scheinobjekte erstellen, und Sie können ihr Verhalten entsprechend definieren, um zu wissen, was Sie genau von den Rückgabewerten und dem Effekt erwarten können.

Ein häufiger Anwendungsfall könnte beispielsweise in einer Model-View-Controller (MVC)-Anwendung liegen, in der wir eine Data Access Objects (DAO)-Schicht und einen Controller haben, der die Geschäftslogik ausführt. Wenn Sie den Controller testen möchten und der Controller von einem Data Access Object (DAO) abhängig ist, können Sie ein Scheinobjekt des DAO erstellen, das Dummy-Objekte an Ihren Controller zurückgibt.

Scheinobjekte helfen beim Testen der Funktionalität einer Anwendung, die Sie testen möchten, da wir alle Abhängigkeiten erreichen können, indem wir diese abhängigen Objekte verspotten.

Und wenn sie den Test bestehen, ist es sicher, dass die Einheit unter diesem Test korrekt ist.

Eine wichtige zu berücksichtigende Sache ist, dass Scheinobjekte dieselbe Schnittstelle implementieren wie die realen Objekte, die sie verspotten. Dadurch kann Ihr Code sie über den Schnittstellentyp behandeln, als wären sie Instanzen der realen Sache.

Um Mock-Objekte zu verwenden, importieren Sie die Mockito-Bibliothek; Statisches org.mockito.Mockito.* importieren; ermöglicht Ihnen die Verwendung der mock()-Methode, die beim Erstellen von Scheinobjektinstanzen hilft.

Der nächste Schritt ist die Mock-Erstellung und die Syntax ist List mockedList = mock(List.class);. Um nun einige Werte hinzuzufügen, verwenden wir das definierte Objekt von List wie folgt, mockedList.add("Value one"), und verifizieren es mit der Methode verify() wie folgt: verify(mockedList).add("one").

// Import Library
import static org.mockito.Mockito.*;

// Create Mock
List mockedList = mock(List.class);

// using mock object
mockedList.add("one");
mockedList.clear();

// Varifying
verify(mockedList).add("one");
verify(mockedList).clear();
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn