Heim > Java > javaLernprogramm > Hauptteil

Wie kann Mockito das Testen abstrakter Klassen vereinfachen?

Mary-Kate Olsen
Freigeben: 2024-10-30 18:48:30
Original
575 Leute haben es durchsucht

How Can Mockito Simplify Testing Abstract Classes?

Verspotten abstrakter Klassen mit Mockito

Das Testen abstrakter Klassen kann eine Herausforderung darstellen, insbesondere wenn die manuelle Erstellung von Mock-Klassen in Betracht gezogen wird. Die Nutzung von Mockito bietet jedoch einen alternativen Ansatz.

Mockito.mock() mit Answers.CALLS_REAL_METHODS

Anstatt manuell eine Mock-Klasse zu erstellen, kann Mockitos Methode Mock() dies tun kann mit dem Argument Answers.CALLS_REAL_METHODS verwendet werden. Diese Option generiert eine Scheinklasse, die von der abstrakten Klasse erbt und das Testen realer Methoden ermöglicht, ohne diese explizit zu implementieren.

Beispiel:

Betrachten Sie eine abstrakte Klasse My with eine zu testende Methode methodUnderTest() und eine abstrakte Methode methodIDontCareAbout(). Der folgende Codeausschnitt zeigt, wie methodUnderTest() mit diesem Ansatz getestet wird:

<code class="java">@Test
public void shouldFailOnNullIdentifiers() {
    My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
    Assert.assertSomething(my.methodUnderTest());
}</code>
Nach dem Login kopieren

In diesem Beispiel erstellt Mockito.mock(My.class, Answers.CALLS_REAL_METHODS) eine Scheininstanz von My, die das Reale zulässt Implementierung von methodUnderTest() zum Ausführen, was das Testen seiner Logik ermöglicht. Gleichzeitig muss die abstrakte Methode methodIDontCareAbout() nicht implementiert werden, da sie nicht vom Test aufgerufen wird.

Vorteile

Dieser Ansatz optimiert das Testen von abstrakten Klassen, da keine benutzerdefinierten Unterklassen mehr erstellt oder abstrakte Methoden implementiert werden müssen. Außerdem wird die gewünschte Trennung zwischen der abstrakten Klasse und dem Testfall beibehalten, was sauberere und präzisere Tests ermöglicht.

Das obige ist der detaillierte Inhalt vonWie kann Mockito das Testen abstrakter Klassen vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!