Heim  >  Artikel  >  Java  >  Kann Mockito abstrakte Klassen verspotten?

Kann Mockito abstrakte Klassen verspotten?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 13:30:03981Durchsuche

Can Mockito Mock Abstract Classes?

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!

Stellungnahme:
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