Java >> Java tutorial >  >> Java

Spotobjekter i Java

Spotobjekter hjælper med at simulere og verificere rigtige objekter uden at køre den rigtige kode i disse objekter. Du kan oprette en mock for at returnere specifikke resultater på metodekaldene og nemt verificere, om metoden blev kaldt eller ej.

Som diskuteret ovenfor bruges Mock-objekterne til enhedstestning. Hvis du har et objekt, hvis metoder du vil teste, og disse metoder er afhængige af nogle andre objekter, så kan du i så fald lave en hån af afhængigheden i stedet for den faktiske forekomst af den afhængighed, og du kan teste dine objekter isoleret set.

Håneobjekter i Java

De almindelige Java-rammer til oprettelse af falske objekter inkluderer JMock og EasyMock. Disse to rammer giver dig generelt mulighed for at skabe falske objekter, og du kan definere deres adfærd i overensstemmelse hermed for at vide, hvad du nøjagtigt kan forvente af returværdierne og effekten.

For eksempel kan en almindelig brugssag være i en Model-View-Controller (MVC) applikation, hvor vi har et Data Access Objects (DAO) lag og en controller, der udfører forretningslogikken. Hvis du vil teste controlleren, og controlleren er afhængig af et Data Access Object (DAO), så kan du lave et hånligt objekt af DAO'en, der returnerer dummy-objekter til din controller.

Spotobjekter hjælper med at teste funktionaliteten af ​​en applikation, som du vil teste, fordi vi kan opnå alle afhængigheder ved at håne disse afhængige objekter.

Og hvis de består testen, er det sikkert, at enheden under denne test er korrekt.

En vigtig ting at overveje er, at falske objekter implementerer den samme grænseflade som de rigtige objekter, de håner. Dette giver din kode mulighed for at håndtere dem via grænsefladetypen, som om de er tilfælde af den ægte vare.

For at bruge falske objekter skal du importere Mockito bibliotek; import static org.mockito.Mockito.*; giver dig mulighed for at bruge mock() metode, som hjælper med at skabe falske objektforekomster.

Næste trin er den falske oprettelse, og syntaksen er List mockedList = mock(List.class); . For at tilføje nogle værdier bruger vi det definerede objekt i List som følger, mockedList.add("Value one") , og bekræft det ved hjælp af verify() metode som følger, verify(mockedList).add("one") .

//Import Library
import static org.mockito.Mockito.*;

// Create Mock
 List mockedList = mock(List.class);

 //using mock object
 mockedList.add("one");
 mockedList.clear();

 // Varifying
 verify(mockedList).add("one");
 verify(mockedList).clear();

Java tag