Kurz und knackig

Annotation

@MockitoSettings    // an einer Testklasse initialisiert die Mocks

@Mock               // definition der Mocks -> Mockito.mock(..)

@InjectMock         // Klasse, die das Mockobjekt enthält

Methoden

// Mocken einer Methode mit Rückgabewert
Mockito.when(mockObjekt.eineMethode()).thenReturn(object)

// Mocken einer Methode mit Exception
Mockito.when(mockObjekt.eineMethode()).thenThrow(new RuntimeException())

// Mocken einer Methode mit Auswahl der Antwort, um z.B. den Rückgabewert abhängig von den Parametern zu machen
Mockito.when(mockObject.eineMethode()).thenAnswer(..)

Testen der Argumente, die dem Mock übergeben wurden

Manchmal möchte man prüfen, dass die richtigen Parameter an ein Mock Objekt übergeben wurden. Dies kann man mit einem ArgumentCaptor tun:

@Mock
private Example exampleMock;

@InjectMock
private SuperDuper superDuper;

@Captor
private ArgumentCaptor<HeyHo> parameterSendToMock;

@Test
void shouldPassArguments() {
	superDuper.doSomething();
	
	Mockito.verify(exampleMock).calledMethod(parameterSendToMock.capture());
	
	assertEquals(someValue, parameterSendToMock.getValue().someValue());
}

Gradle Config

TBD