"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 se moquer des méthodes pour renvoyer les arguments reçus en Java ?

Comment se moquer des méthodes pour renvoyer les arguments reçus en Java ?

Publié le 2024-11-16
Parcourir:817

How to Mock Methods to Return Arguments Received in Java?

Méthodes moqueuses pour renvoyer les arguments reçus

Dans la programmation orientée objet, les frameworks moqueurs comme Mockito sont utilisés pour créer un objet fictif qui simule le comportement d'un objet réel à des fins de test. Un scénario courant lors des tests est la nécessité qu'une méthode simulée renvoie le même argument qui lui a été transmis.

Expressions Mockito et Lambda (Mockito 1.9.5 et Java 8)

Pour les versions de Mockito 1.9.5 et ultérieures en conjonction avec Java 8 ou supérieur, vous pouvez exploiter les expressions lambda pour y parvenir behavior:

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

Ici, je représente une instance d'InvocationOnMock, et getArguments()[0] récupère le premier argument passé à la méthode simulée.

Mockito et réponses personnalisées (anciennes Versions)

Pour les anciennes versions de Mockito, vous pouvez utiliser une implémentation personnalisée de Mockito Answer :

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

Cette réponse personnalisée récupère l'argument passé et le renvoie, permettant à la méthode simulée de faire écho à l'entrée reçue.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729677594. 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