Mockito et tests de classes abstraites
Tester des classes abstraites peut poser des défis. La fabrication manuelle de simulations par héritage semble fastidieuse et redondante. Heureusement, les frameworks moqueurs comme Mockito offrent des approches alternatives.
ASSISTANCE AVEC LES CLASSES ABSTRAITES MOQUANTES de Mockito
Mockito permet une moquerie transparente des classes abstraites tout en contournant le besoin de sous-classes explicites. En utilisant Mockito.mock(My.class, Answers.CALLS_REAL_METHODS), vous pouvez créer une simulation qui hérite de la classe abstraite. Cette simulation agit à la fois comme une sous-classe et une simulation partielle.
ÉVITER LA MISE EN ŒUVRE DE MÉTHODES ABSTRAITES
La configuration Answers.CALLS_REAL_METHODS vous permet de vous moquer des méthodes abstraites sans les implémenter. Les méthodes réelles seront exécutées telles quelles, à moins qu'elles ne soient explicitement supprimées dans votre test.
EXEMPLE D'IMPLANTATION
Considérez la classe abstraite suivante et un cas de test :
<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>
Dans cet exemple, la simulation est créée à l'aide de Mockito.mock() et Answers.CALLS_REAL_METHODS garantit que la méthode methodUnderTest() est exécutée comme défini dans la classe abstraite, même si methodIDontCareAbout() n'est pas implémentée. . Cette approche simplifie le processus de test et élimine le besoin de création manuelle de sous-classes.
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!