Verspotten von Void-Methoden mit Mockito
Beim Umgang mit Beobachtermustern können Verspottungsmethoden mit Void-Rückgabetypen eine Herausforderung darstellen. Ein solcher Fall besteht darin, dass es schwierig ist, eine Klasse mit einer Methode wie addListener zu verspotten, die void zurückgibt.
Um eine Methode ohne Rückgabewert zu verspotten, stellt Mockito eine Reihe von Methoden bereit: doThrow(), doAnswer(), doNothing() und doReturn(). Mit diesen Methoden können Sie das Verhalten der simulierten Methode angeben.
Um beispielsweise anzugeben, dass die addListener-Methode beim Aufruf eine Ausnahme auslöst, können Sie Folgendes verwenden:
Mockito.doThrow(new Exception()).when(instance).addListener(any(Listener.class));
Alternativ Sie kann mehrere Verhaltensweisen miteinander verketten. Der folgende Code löst beispielsweise beim ersten Aufruf von addListener eine Ausnahme aus und führt dann bei nachfolgenden Aufrufen keine Aktion aus:
Mockito.doThrow(new Exception()).doNothing().when(instance).addListener(any(Listener.class));
In der bereitgestellten World-Klasse können Sie die setState-Methode mithilfe der doAnswer-Methode verspotten, z unten gezeigt:
World mockWorld = mock(World.class); doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString());
Das obige ist der detaillierte Inhalt vonSo verspotten Sie Void-Methoden in Mockito: Eine Anleitung zu doThrow, doAnswer, doNothing und doReturn?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!