Verspotten abstrakter Klassen mit Mockito
Beim Testen abstrakter Klassen kann das manuelle Erstellen von Verspottungen umständlich sein. Mockito bietet eine effizientere Lösung.
Abfrage:
Ist es möglich, eine abstrakte Klasse mithilfe von Mockito zu verspotten, statt sie manuell zu erstellen? Wenn ja, wie?
Antwort:
Mockito bietet die Möglichkeit, abstrakte Klassen zu verspotten, ohne eine konkrete Unterklasse zu erstellen. Mit Mockito.mock(My.class, Answers.CALLS_REAL_METHODS) können Sie einen Teil-Mock erstellen, bei dem die abstrakten Methoden vom Mock selbst verarbeitet werden.
Zum Beispiel:
<code class="java">public abstract class My { public Result methodUnderTest() { ... } protected abstract void methodIDontCareAbout(); } public class MyTest { @Test public void shouldFailOnNullIdentifiers() { My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS); Assert.assertSomething(my.methodUnderTest()); } }</code>
Hinweis dass mit CALLS_REAL_METHODS alle tatsächlichen Methoden ausgeführt werden, sofern sie im Test nicht explizit überschrieben werden. Dieser Ansatz bietet eine größere Flexibilität als die Verwendung eines Spions, der die Instanziierung einer Unterklasse der abstrakten Klasse erfordert.
Das obige ist der detaillierte Inhalt vonKann Mockito abstrakte Klassen verspotten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!