Maison  >  Article  >  Java  >  Mockito peut-il se moquer des classes abstraites ?

Mockito peut-il se moquer des classes abstraites ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-02 13:30:03981parcourir

Can Mockito Mock Abstract Classes?

Se moquer des classes abstraites avec Mockito

Lors du test de classes abstraites, la création manuelle de simulations peut être gênante. Mockito fournit une solution plus efficace.

Requête :

Est-il possible de simuler une classe abstraite à l'aide de Mockito plutôt que de créer une simulation manuelle ? Si oui, comment ?

Réponse :

Mockito offre la possibilité de se moquer de classes abstraites sans créer de sous-classe concrète. En utilisant Mockito.mock(My.class, Answers.CALLS_REAL_METHODS), vous pouvez créer une simulation partielle où les méthodes abstraites sont gérées par la simulation elle-même.

Par exemple :

<code class="java">public abstract class My {
    public Result methodUnderTest() { ... }
    protected abstract void methodIDontCareAbout();
}
 
public class MyTest {
    @Test
    public void shouldFailOnNullIdentifiers() {
        My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
        Assert.assertSomething(my.methodUnderTest());
    }
}</code>

Remarque qu'avec CALLS_REAL_METHODS, toutes les méthodes réelles sont exécutées à moins qu'elles ne soient explicitement remplacées dans le test. Cette approche offre une plus grande flexibilité que l'utilisation d'un espion, qui nécessite l'instanciation d'une sous-classe de la classe abstraite.

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