Skip to content

Testing with Mockito

Josh edited this page Jun 13, 2023 · 1 revision

Mockito Testing

Mockito ist ein Open-Source-Testing-Framework für Java, mit dem Entwickler Mock-Objekte erstellen und Tests schreiben können. Mock-Objekte sind Platzhalterobjekte, die das Verhalten von tatsächlichen Objekten imitiert, um Tests ohne externe Abhängigkeiten ausführen zu können. Sie sind besonders für die Erstellung von automatisierten Unit-Tests nützlich, da sie den Testprozess vereinfachen und beschleunigen können.

Mock-Objekte erstellen

public class MyClass {
    public String getValue() {
        return "Hello World!";
    }
}

public class MyTestClass {
    @Test
    public void testMyClass() {
        MyClass mockObject = mock(MyClass.class);
        when(mockObject.getValue()).thenReturn("This is a mock object.");

        String result = mockObject.getValue();

        assertEquals("This is a mock object.", result);
    }
}

In diesem Beispiel erstellt das Mockito-Framework ein Mock-Objekt der Klasse MyClass. Mit der when().thenReturn()-Methode wird das Verhalten des Mock-Objekts definiert, wobei der Rückgabewert der getValue()-Methode "This is a mock object." ist.

Verify-Methoden

Die verify()-Methode wird verwendet, um sicherzustellen, dass bestimmte Methoden auf einem Mock-Objekt aufgerufen wurden.

public class MyClass {
    public void setValue(String value) {}
}

public class MyTestClass {
    @Test
    public void testMyClass() {
        MyClass mockObject = mock(MyClass.class);

        mockObject.setValue("Hello World!");

        verify(mockObject).setValue("Hello World!");
    }
}

In diesem Beispiel wird überprüft, ob die setValue()-Methode auf dem Mock-Objekt mit dem Argument "Hello World!" aufgerufen wurde.

Zusammenfassung

Mockito ist ein leistungsfähiges Framework, das Entwicklern die Erstellung von Mock-Objekten für Tests erleichtert. Mit Mockito können Entwickler sicherstellen, dass ihr Code das erwartete Verhalten zeigt, ohne externe Abhängigkeiten zu nutzen. Durch Mock-Objekte und stark modularisierten Code in Form von abhängigkeitsinjizierten Objekten kann Testen in Java effizienter und leichter in der Handhabung werden.