Mockito est un framework de simulation Java qui permet la création d'objets simulés à des fins de test. Les méthodes moqueuses permettent de tester le code indépendamment de ses dépendances. Dans ce scénario, nous souhaitons simuler une méthode pour renvoyer une valeur qui lui a été transmise lors de l'appel de la méthode.
Solution :
Depuis la version 1.9.5 de Mockito et Java 8, les expressions lambda peuvent être utilisées pour obtenir la fonctionnalité souhaitée. Voici comment :
<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>
Dans cette expression lambda, i représente une instance de InvocationOnMock et i.getArguments()[0] récupère le premier argument passé à la méthode simulée.
Solution alternative pour les anciennes versions :
Pour les anciennes versions de Mockito, une réponse peut être implémentée pour obtenir le même résultat. Voici un exemple :
<code class="java">when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { Object[] args = invocation.getArguments(); return (String) args[0]; } });</code>
Dans cette implémentation de Answer, le tableau d'arguments est récupéré de l'instance InvocationOnMock et le premier argument (chaîne) est renvoyé.
En utilisant ces méthodes, vous pouvez configurez les méthodes simulées dans Mockito pour renvoyer des valeurs basées sur les arguments qui leur sont transmis, permettant ainsi des scénarios de test plus flexibles et plus réalistes.
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!