Se moquer des méthodes Void avec Mockito
Dans le modèle Observer, les observateurs définissent généralement des méthodes avec des types de retour void. Lorsque vous essayez de vous moquer de telles méthodes à l'aide de Mockito, vous pouvez rencontrer des défis.
Défi : Les simulations de méthodes sans valeurs de retour ne sont pas automatiquement déclenchées. Par conséquent, les assertions liées aux changements d'état ou aux invocations de méthodes peuvent échouer dans les tests unitaires.
Solution :
Utilisez doThrow(), doAnswer(), doNothing(), ou doReturn() méthodes de Mockito pour manipuler le comportement des méthodes void.
Par exemple, pour déclencher une exception lorsqu'une méthode est appelée :
Mockito.doThrow(new Exception()).when(instance).methodName();
Pour combiner avec les actions suivantes :
Mockito.doThrow(new Exception()).doNothing().when(instance).methodName();
Dans l'exemple fourni, se moquer de la méthode setState peut être réalisé en utilisant doAnswer method :
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());
Avec cette technique, vous pouvez vous moquer des méthodes void, définir des attentes et effectuer des assertions pour vérifier leur comportement dans vos tests unitaires.
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!