0Pricing
Testing Mastery: JUnit, Mockito & Integration Tests · Lektion

Mocks mit Mockito erstellen

Verwenden Sie Mockito, um Mock-Objekte für Abhängigkeiten zu erstellen und die zu testende Einheit von ihren Kollaboratoren zu isolieren.

Mocks mit Mockito erstellen ist eine kostenlose Testing Mastery: JUnit, Mockito & Integration Tests-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Testing Mastery: JUnit, Mockito & Integration Tests-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Testing Mastery: JUnit, Mockito & Integration Tests-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Intro to Mockito Mocks

In the previous lesson, we learned about the concept of a mock object. Mocks are special test doubles that let us control the behavior of dependencies.

Now, we'll dive into Mockito, a popular Java mocking framework, to see how easy it is to create these powerful tools for your tests.

Why Create Mocks?

Creating mocks is crucial for effective unit testing:

  • Isolation: Mocks allow you to test a single unit of code in isolation, without worrying about its real dependencies.
  • Control: You can program mocks to behave exactly as needed for your test scenario, simulating various outcomes.
  • Speed: Mocks avoid slow operations like database calls or network requests, making your tests run much faster.

The `Mockito.mock()` Method

The simplest way to create a mock object in Mockito is by using the Mockito.mock() static method. You pass it the Class or Interface you want to mock.

It returns a new mock instance that looks and acts like the real object, but without its actual implementation logic.

Basic Mock Creation Example

Let's create a mock for a simple EmailService interface. Run the code to see how a mock object is created.

import org.mockito.Mockito;

interface EmailService {
  void sendEmail(String to, String subject, String body);
  String getServiceStatus();
}

public class Main {
  public static void main(String[] args) {
    EmailService mockEmailService = Mockito.mock(EmailService.class);
    System.out.println("Mock created: " + mockEmailService.getClass().getName());
  }
}

Understanding Default Mock Behavior

What happens if you call a method on a mock without telling it what to do?

  • Objects: Methods returning objects will return null.
  • Primitives: Methods returning primitive types (like int, boolean) will return their default values (0, false).
  • Collections: Methods returning collections will return empty collections.
  • Void: Methods returning void do nothing.

Default Behavior in Action

Let's call a method on our mockEmailService without any configuration. Observe the default return value.

import org.mockito.Mockito;

interface EmailService {
  void sendEmail(String to, String subject, String body);
  String getServiceStatus();
}

public class Main {
  public static void main(String[] args) {
    EmailService mockEmailService = Mockito.mock(EmailService.class);
    
    // Calling a method that returns an object
    String status = mockEmailService.getServiceStatus();
    System.out.println("Default status: " + status);
    
    // Calling a void method (does nothing by default)
    mockEmailService.sendEmail("test@example.com", "Hi", "Hello");
    System.out.println("Void method called (no output)");
  }
}

Creating Mocks with `@Mock`

While Mockito.mock() works, for tests, Mockito offers a more convenient way using the @Mock annotation.

You simply declare a field with @Mock, and Mockito takes care of initializing it into a mock object.

Initializing `@Mock` Annotations

For @Mock annotations to work, you need to tell Mockito to process them. In JUnit 5, this is typically done using the @ExtendWith(MockitoExtension.class) annotation on your test class.

Alternatively, you can manually initialize them using MockitoAnnotations.openMocks(this).

Example: Using `@Mock` Annotation

This example simulates a test class where @Mock is used. Run it to see the mock initialized via MockitoAnnotations.openMocks().

import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

interface DataRepository {
  String fetchData();
}

// Simulate a test class structure
class MyServiceTest {
  @Mock
  DataRepository mockRepository;

  public MyServiceTest() {
    // Manually open mocks for demonstration in main
    MockitoAnnotations.openMocks(this);
  }
}

public class Main {
  public static void main(String[] args) {
    MyServiceTest testInstance = new MyServiceTest();
    System.out.println("Mocked repository: " + testInstance.mockRepository.getClass().getName());
    System.out.println("Default fetch data: " + testInstance.mockRepository.fetchData());
  }
}

Quick Check on Mocks

You want to create a mock object for an interface called PaymentGateway. Which of the following is a correct and common way to do this in Mockito?

Recap: Creating Mocks

You've learned the fundamental ways to create mock objects with Mockito:

  • Use Mockito.mock(ClassToMock.class) for direct creation.
  • Use the @Mock annotation on a field, typically initialized by @ExtendWith(MockitoExtension.class) in JUnit 5.
  • Mocks return default values (null, 0, false) for method calls if not configured otherwise.

Next, we'll learn how to verify that your mocks were called as expected!

Häufig gestellte Fragen

Ist die Lektion „Mocks mit Mockito erstellen“ kostenlos?

Ja — der vollständige Text von „Mocks mit Mockito erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Testing Mastery: JUnit, Mockito & Integration Tests-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Testing Mastery: JUnit, Mockito & Integration Tests-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Mocks mit Mockito erstellen“?

Verwenden Sie Mockito, um Mock-Objekte für Abhängigkeiten zu erstellen und die zu testende Einheit von ihren Kollaboratoren zu isolieren. Du übst Testing Mastery: JUnit, Mockito & Integration Tests mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Testing Mastery: JUnit, Mockito & Integration Tests zu starten?

Keine Vorkenntnisse erforderlich. Testing Mastery: JUnit, Mockito & Integration Tests auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Mocks mit Mockito erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Testing Mastery: JUnit, Mockito & Integration Tests-Lektion Code schreiben und ausführen?

Ja. Jede Testing Mastery: JUnit, Mockito & Integration Tests-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Mocks, Stubs und Fakes
  2. Mocks mit Mockito erstellen
  3. Mock-Interaktionen überprüfen
  4. Mocks mit @Mock und @InjectMocks injizieren
← Zurück zu Testing Mastery: JUnit, Mockito & Integration Tests