0 Tage Serie
java / beginner
Snippet

Service-Abhängigkeiten in Controller-Tests mit MockBean nachstellen

Beim Testen in Spring Boot erstellt @MockBean ein Mockito-Mock für eine Bean und registriert es im Spring ApplicationContext. Dadurch werden echte externe Dienste (wie Zahlungsanbieter oder Drittanbieter-APIs) während der Testausführung durch vorhersehbares Testverhalten ersetzt.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
@SpringBootTest
public class OrderServiceTest {
@MockBean
private PaymentGateway paymentGateway;
@Test
void testSuccessfulPayment() {
when(paymentGateway.processPayment(100.0)).thenReturn(true);
boolean result = paymentGateway.processPayment(100.0);
assertEquals(true, result);
}
}
spring
Erklärung
1
@MockBean
Registriert eine Mockito-Mock-Instanz im Spring ApplicationContext, um die echte Bean zu ersetzen.
2
when(paymentGateway.processPayment(100.0)).thenReturn(true);
Konfiguriert das Mock-Objekt so, dass es 'true' zurückgibt, wenn processPayment mit 100.0 aufgerufen wird.
3
assertEquals(true, result);
Prüft mit einer Assertion, ob das tatsächliche Ergebnis dem erwarteten Testwert entspricht.