"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment simuler les retours de méthode aux arguments d'entrée d'écho dans Mockito ?

Comment simuler les retours de méthode aux arguments d'entrée d'écho dans Mockito ?

Publié le 2024-11-04
Parcourir:732

How to Mock Method Returns to Echo Input Arguments in Mockito?

Renvoi de méthode simulée : écho des arguments d'entrée

Lors du test d'un logiciel, il peut être avantageux que les méthodes simulées renvoient les arguments qui sont transmis à eux. Ce comportement peut être particulièrement utile lors de la vérification des interactions ou du test du flux de données via un système.

Pour les versions 1.9.5 et supérieures de Mockito, cette fonctionnalité peut être obtenue succinctement à l'aide d'expressions lambda :

when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);

Dans ce cas, le paramètre i représente une instance InvocationOnMock, qui donne accès au arguments transmis à la méthode simulée.

Pour les versions antérieures de Mockito, une réponse personnalisée est requise :

when(mock.myFunction(anyString())).thenAnswer(new Answer() {
  @Override
  public String answer(InvocationOnMock invocation) throws Throwable {
    Object[] args = invocation.getArguments();
    return (String) args[0];
  }
});

En utilisant cette approche, la simulation renverra la même chaîne qui a été transmise à myFunction().

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729678268. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3