Maison > Java > javaDidacticiel > le corps du texte

Comment tester des classes abstraites avec Mockito : un guide étape par étape

Susan Sarandon
Libérer: 2024-10-30 18:07:03
original
530 Les gens l'ont consulté

How to Test Abstract Classes with Mockito: A Step-by-Step Guide

Test des classes abstraites avec Mockito

Les classes abstraites posent des défis pour les tests unitaires en raison de leur manque d'implémentations concrètes. Bien que la création manuelle de simulations soit une option, elle peut prendre du temps et être complexe.

Mockito propose une solution élégante pour tester des classes abstraites sans création manuelle de simulations. Voici comment cela fonctionne :

  1. Mockez la classe abstraite :

    <code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>
    Copier après la connexion

    En utilisant Answers.CALLS_REAL_METHODS, vous demandez à Mockito d'exécuter le véritable implémentation de méthodes non remplacées, vous permettant de tester le comportement des méthodes abstraites.

  2. Stub Abstract Methods as Needed :

    Pour le résumé méthodes que vous souhaitez contrôler pendant les tests, utilisez la syntaxe suivante :

    <code class="java">Mockito.when(mock.methodIDontCareAbout()).thenReturn(null);</code>
    Copier après la connexion

    Cela supprime la méthode abstraite spécifique, fournissant le comportement souhaité.

Exemple :

Considérons le scénario suivant :

<code class="java">public abstract class My {
    public Result methodUnderTest() { ... }
    protected abstract void methodIDontCareAbout();
}

@Test
public void shouldFailOnNullIdentifiers() {
    My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
    Assert.assertSomething(my.methodUnderTest());
}</code>
Copier après la connexion

Dans cet exemple, la méthode abstraite methodIDontCareAbout() n'est pas utilisée dans la méthode testée. En vous moquant de lui avec thenReturn(null), vous l'ignorez effectivement pendant les tests.

Cette approche fournit un moyen concis et pratique de tester des classes abstraites, éliminant le besoin de simulations faites à la main et facilitant des tests efficaces de non- cours concrets.

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.cn
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!