Tutoriel jMock pour les débutants avec projet de test
Qu'est-ce que jMock ?
jMock est une bibliothèque qui aide à créer un développement piloté par les tests du code Java avec des objets fictifs. jMock Nous pouvons tester indépendamment une classe qui dépend d'une autre classe.
Supposons qu'une classe dépende d'une autre classe, nous pouvons créer un simulacre de la classe dépendante et définir les propriétés initiales pour tester la classe dépendante.
Exemple de tutoriel jMock:
Note : Nous utilisons la plateforme Eclipse pour ce projet de test. Vous pouvez télécharger Eclipse à partir de ici.
Assurez-vous que Environnement d'exécution Java SE est déjà installé pour que le programme d'installation d'Eclipse puisse démarrer l'installation.
Créez un projet de test en Java nommé Projet de test et incluez les bocaux suivants dans son chemin de classe :
- jmock-2.5.1.jar
- hamcrest-core-1.1.jar
- hamcrest-library-1.1.jar
- JUnit-4.5.jar
Créez une interface nommée ITestInterface et insérez le code suivant dans cette interface :
le test de l'emballage ;
public interface ITestInterface
{
public int test() ;
}
Créez TestClass1 et insérez le code suivant dans cette classe
le test de l'emballage ;
public class TestClass1 implements ITestInterface
{
public int test()
{
retour 3 ;
}
}
Créez TestClass2 et insérez le code suivant dans cette classe
le test de l'emballage ;
public class TestClass2
{
ITestInterface testInterface ;
public TestClass2()
{
this.testInterface=testInterface ;
}
public int testMock()
{
int result=testInterface.test() ;
retourner le résultat ;
}
}
Créez TestClass3 et insérez le code suivant dans cette classe
le test de l'emballage ;
import junit.framework.Assert ;
import org.jmock.Mockery ;
import org.junit.Test ;
public class TestClass3
{
@Test
public void testJmock()
{
org.jmock.Mockery TestInterfaceMock= new Mockery() ;
final ITestInterface testInterface=TestInterfaceMock.mock(ITestInterface.class) ;
TestInterfaceMock.checking(new org.jmock.Expectations()
{{
oneOf(testInterface).test() ;
will(returnValue((3))) ;
}});
int j=testInterface.test() ;
System.out.println(j) ;
Assert.assertEquals(j, 3) ;
}
}
L'exemple ci-dessus montre clairement que TestClass1 met en œuvre l'interface ITestInterface. Ici, si nous observons que TestClass2 dépend de TestClass1, nous ne faisons pas de nouveau de TestClass1 dans TestClass2, mais nous utilisons un objet fantaisie pour le rendre testable à l'unité.
Dans TestClass3, nous créons l'objet fantaisie de ITestInterface. Nous attendons de cet objet qu'il renvoie 3 lorsqu'il est appelé pendant le test unitaire de TestClass2. Par exemple, dans TestClass3, lorsque nous appelons testInterface.test(), l'appel va à TestClass2. Dans TestClass2, lorsque nous appelons testInterface.test(), la valeur est renvoyée par l'objet fantaisie. De cette manière, nous testons TestClass2 de manière indépendante.
Pour tester l'exemple ci-dessus, faites un clic droit sur TestClass3 et sélectionnez Run as Junit Test.
L'écran suivant s'affiche :
Le cas de test a été exécuté avec succès !
5 réponses
Puis-je savoir comment testclass2 dépend de testclass1 ?
Merci d'avoir partagé ces informations précieuses sur jmock ! C'était une bonne lecture !
De rien Tanuja 🙂 Heureux de vous aider !
Bon post
Merci 🙂