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