Maison  >  Article  >  Java  >  Comment tester les réponses non déterminées avec Mockito et les invocations de méthodes multiples ?

Comment tester les réponses non déterminées avec Mockito et les invocations de méthodes multiples ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 00:31:30434parcourir

 How to Test Nondeterminate Responses with Mockito and Multiple Method Invocations?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn