jMock Tutorial per principianti con Test Project
Cos'è jMock?
jMock è una libreria che aiuta a creare uno sviluppo basato su test di codice Java con oggetti simulati. Con l'aiuto di jMock possiamo testare la classe in modo indipendente che dipende da un'altra classe.
Supponiamo che se una classe dipende da un'altra classe, possiamo creare una simulazione della classe dipendente e impostare le proprietà iniziali per testare la classe dipendente.
Esempio di tutorial jMock:
Nota: stiamo utilizzando la piattaforma Eclipse per questo progetto di test. Puoi scaricare Eclipse da Qui.
Assicurarsi Ambiente runtime Java SE è già installato affinché il programma di installazione di Eclipse possa avviare l'installazione.
Crea un progetto di test in Java denominato Test project.Includi i seguenti jar nel suo classpath:
- jmock-2.5.1.jar
- hamcrest-core-1.1.jar
- hamcrest-library-1.1.jar
- JUnit-4.5.jar
Crea un'interfaccia denominata ITestInterface. Inserisci il seguente codice in questa interfaccia:
prova del pacchetto;
interfaccia pubblica ITestInterface
{
public int test();
}
Crea TestClass1. Inserisci il seguente codice in questa classe
prova del pacchetto;
la classe pubblica TestClass1 implementa ITestInterface
{
test int pubblico()
{
ritorno 3;
}
}
Crea TestClass2. Inserisci il seguente codice in questa classe
prova del pacchetto;
classe pubblica TestClass2
{
ITestInterface testInterface;
TestClass2 pubblico()
{
this.testInterface=testInterface;
}
public int testMock()
{
int risultato=testInterface.test();
risultato restituito;
}
}
Crea TestClass3. Inserisci il seguente codice in questa classe
prova del pacchetto;
importare junit.framework.Assert;
import org.jmock.Mockery;
importare org.junit.Test;
classe pubblica TestClass3
{
@Test
test vuoto pubblicoJmock()
{
org.jmock.Mockery TestInterfaceMock= new Mockery();
final ITestInterface testInterface=TestInterfaceMock.mock(ITestInterface.class);
TestInterfaceMock.checking(nuovo org.jmock.Expectations()
{{
unoOf(testInterface).test();
volontà(valoreritorno((3)));
}});
int j=testInterface.test();
System.out.println(j);
Assert.assertEquals(j, 3);
}
}
Dall'esempio precedente è chiaro che TestClass1 implementa l'interfaccia ITestInterface. Qui se osserviamo che TestClass2 dipende da TestClass1. Quindi per renderlo testabile dall'unità non stiamo facendo una novità di TestClass1 in TestClass2. Stiamo usando un oggetto fittizio.
In TestClass3 stiamo creando l'oggetto Mock di ITestInterface. Stiamo impostando l'aspettativa che questo oggetto restituisca 3 quando viene chiamato durante il test unitario di TestClass2. Ad esempio in TestClass3 quando effettuiamo una chiamata a testInterface.test() la chiamata va a TestClass2. In TestClass2 quando chiamiamo testInterface.test() il valore viene restituito dall'oggetto mock. In questo modo stiamo testando TestClass2 in modo indipendente.
Per testare l'esempio sopra, fare clic con il pulsante destro del mouse su TestClass3 e selezionare Esegui come test Junit.
Verrà mostrata la seguente schermata:
Caso di test eseguito con successo!
5 risposte
Posso sapere in che modo testclass2 dipende da testclass1
Grazie per aver condiviso le preziose informazioni su jmock! È stata una bella lettura!
Prego Tanuja 🙂 Felice di aiutarti!
Bel post
Grazie 🙂