Maison  >  Article  >  Java  >  Comment se moquer des réponses non déterministes dans ExecutorCompletionService avec Mockito ?

Comment se moquer des réponses non déterministes dans ExecutorCompletionService avec Mockito ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 02:46:28351parcourir

How to Mock Nondeterministic Responses in ExecutorCompletionService with Mockito?

Se moquer des réponses non déterministes dans ExecutorCompletionService avec Mockito

Tester le comportement d'un ExecutorCompletionService lorsque les tâches renvoient des valeurs non déterministes peut être difficile. Cependant, Mockito fournit une solution pour simuler de tels scénarios.

Dans cette situation, vous pouvez utiliser la méthode thenReturn de Mockito pour spécifier plusieurs valeurs de retour pour une méthode stubbée. Cela vous permet de contrôler l'ordre dans lequel les valeurs sont renvoyées, garantissant que le résultat reste cohérent quel que soit l'ordre d'exécution.

Pour y parvenir, spécifiez simplement l'appel de la méthode stubbée suivi d'une liste de valeurs à renvoyer. en ordre. Par exemple :

when(completionService.take().get()).thenReturn(value1, value2, value3);

Dans cet exemple, value1 sera renvoyée la première fois que take() est appelée, value2 sera renvoyée la deuxième fois, et ainsi de suite. Une fois que toutes les valeurs ont été renvoyées, value3 sera renvoyée à plusieurs reprises pour les appels suivants.

En utilisant cette technique, vous pouvez tester le comportement de votre code lorsque vous traitez des résultats de tâches non déterministes, en vous assurant que le résultat souhaité est atteint indépendamment de l'ordre dans lequel les tâches sont accomplies.

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