Test des réponses non déterminées avec Mockito et plusieurs invocations de méthodes
Dans les scénarios de test dans lesquels une méthode stubbée renvoie différents objets pour plusieurs invocations avec les mêmes arguments , il devient essentiel de garantir des résultats cohérents quelle que soit l’ordre de retour. Pour y parvenir, Mockito propose une solution élégante.
Par exemple, considérons le scénario de test suivant dans lequel un ExecutorCompletionService est utilisé pour regrouper et traiter des tâches. L'objectif est de vérifier que le résultat reste constant quel que soit l'ordre dans lequel les tâches sont terminées.
<code class="java">// ExecutorCompletionService completionService = new ExecutorCompletionService(service); // for (Callable<T> t : ts) completionService.submit(request);</code>
Pour tester les réponses indéterminées du service d'achèvement, on peut exploiter la méthode thenReturn de Mockito comme suit :
<code class="java">when(completionService.take().get()).thenReturn(value1, value2, value3);</code>
La méthode thenReturn permet de spécifier plusieurs valeurs de retour comme arguments, garantissant que la méthode stubbée renvoie les objets souhaités dans l'ordre spécifié. La première valeur sera renvoyée lors du premier appel, suivie de la seconde, et ainsi de suite. Une fois toutes les valeurs épuisées, la dernière valeur sera renvoyée à plusieurs reprises.
Cette approche permet aux développeurs de tester divers scénarios dans lesquels l'ordre des appels de méthode ou la séquence des objets renvoyés n'affecte pas le résultat attendu. Il simplifie les tests et garantit que le code est robuste et fiable même dans des situations indéterminées.
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!