Mocking Void Methods avec Mockito
Lorsqu'il s'agit de modèles d'observateurs, les méthodes moqueuses avec des types de retour void peuvent présenter des défis. Un de ces cas est de rencontrer des difficultés pour se moquer d'une classe avec une méthode comme addListener, qui renvoie void.
Pour se moquer d'une méthode sans valeur de retour, Mockito fournit un ensemble de méthodes : doThrow(), doAnswer(), doNothing() et doReturn(). Ces méthodes vous permettent de spécifier le comportement de la méthode simulée.
Par exemple, pour spécifier que la méthode addListener lève une exception lorsqu'elle est appelée, vous pouvez utiliser :
Mockito.doThrow(new Exception()).when(instance).addListener(any(Listener.class));
Alternativement, vous peut enchaîner plusieurs comportements ensemble. Par exemple, le code suivant lève une exception lors du premier appel à addListener, puis ne fait rien lors des appels suivants :
Mockito.doThrow(new Exception()).doNothing().when(instance).addListener(any(Listener.class));
Dans la classe World fournie, vous pouvez vous moquer de la méthode setState à l'aide de la méthode doAnswer, comme ci-dessous :
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());
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!