Maison > Java > javaDidacticiel > le corps du texte

Comment renvoyer un argument à une méthode simulée dans Mockito ?

Mary-Kate Olsen
Libérer: 2024-10-23 22:13:02
original
681 Les gens l'ont consulté

How to Return an Argument to a Mocked Method in Mockito?

Comment faire en sorte qu'une méthode simulée renvoie un argument qui lui est transmis à l'aide de Mockito

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!