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!