Oponašanje
Mocks su objekti koji pohranjuju pozive metoda. Naziva se dinamičkim omotačima za ovisnosti korištene u testovima. Koristi se za snimanje i provjeru interakcije između Java klasa. Mock je poznat kao najmoćnija i najfleksibilnija verzija testnih parova. Koristimo metodu za ismijavanje tzv oponašanje() .
bourne again školjka
Glavna funkcija korištenja ismijavanja je da daje potpunu kontrolu nad ponašanjem ismijanih objekata. Općenito se koriste lažni objekti provjera ponašanja . Izraz ponašanje znači provjeriti ispravne metode i staze koje se primjenjuju na objekte.
Mocks se uglavnom stvaraju korištenjem biblioteke ili okvira za ismijavanje kao što su Mockito, JMock i EasyMock. Koristi se za testiranje velikog paketa testova gdje nisu dovoljni dodaci. Jedna od bitnih funkcija mock-a je da možemo provjeriti koliko je puta određena metoda pozvana.
Sljedeći isječak koda pokazuje kako koristiti mock().
ToDoService doService = mock(ToDoService.class);
Stub
Stubovi su objekti koji sadrže unaprijed definirane podatke i koriste ih za davanje odgovora tijekom testova. Drugim riječima, stub je objekt koji nalikuje stvarnom objektu s minimalnim brojem metoda potrebnih za testiranje. Stubovi se koriste kada ne želimo koristiti objekte koji bi dali odgovor sa stvarnim podacima. Stub se naziva najlakšim, a najstatičnija verzija testa duplira.
Glavne funkcije čepova su:
- Uvijek vraća unaprijed definirani izlaz bez obzira na ulaz.
- Može se koristiti da nalikuje objektima baze podataka.
- Stubovi se koriste za smanjenje složenosti koje se javljaju tijekom stvaranja stvarnih objekata. Uglavnom se koriste za izvođenje provjera stanja .
Špijun
Špijuni su poznati kao djelomično ismijavati predmete . To znači da špijun stvara djelomični objekt ili polovicu lutke pravog objekta tako što zabija ili špijunira stvarne objekte. U špijuniranju stvarni objekt ostaje nepromijenjen, a mi samo špijuniramo neke njegove specifične metode. Drugim riječima, uzimamo postojeći (pravi) objekt i zamijeniti ili špijun samo neke od njegovih metoda.
Špijuni su korisni kada imamo ogromnu klasu punu metoda, a želimo ismijavati određene metode. U ovom scenariju, trebali bismo radije koristiti špijune nego rugalice i zaglavke. Poziva stvarno ponašanje metode, ako metode nisu zaglavljene.
U Mockitu se metoda spy() koristi za stvaranje špijunskih objekata. Omogućuje nam pozivanje normalnih metoda stvarnog objekta. Sljedeći isječak koda pokazuje kako koristiti metodu spy().
List spyArrayList = spy(ArrayList.class);
Razlika između Stuba i Mocka
Parametri | Stub | Oponašanje |
---|---|---|
Izvor podataka | Izvor podataka stubova je tvrdo kodiran. Obično je usko povezan sa skupom testova. | Podaci o mockovima postavljaju se testovima. |
Napravio | Završeci su obično pisani rukom, a neki su generirani pomoću alata. | Mocks se obično stvaraju korištenjem biblioteke treće strane kao što su Mockito, JMock i WireMock. |
Korištenje | Stubovi se uglavnom koriste za jednostavne pakete testova. | Mocks se uglavnom koriste za velike pakete testova. |
Grafičko korisničko sučelje (GUI) | Stubovi nemaju GUI. | Mocks ima GUI. |
Slijede neke razlike između lažnog i špijunskog:
Parametri | Oponašanje | Špijun |
---|---|---|
Korištenje | Mocks se koriste za stvaranje potpuno lažnih ili lažnih objekata. Uglavnom se koristi u velikim paketima testova. | Špijuni se koriste za stvaranje djelomičnih ili polu lažnih objekata. Kao lažni, špijuni se također koriste u velikim paketima testova. |
Zadano ponašanje | Kada koristite lažne objekte, zadano ponašanje metoda (kada nisu zaglavljene) je ne radi ništa (ne izvodi ništa.) | Kada koristite špijunske objekte, zadano ponašanje metoda (kada nisu zaglavljene) je stvarno ponašanje metode. |
U našim prethodnim tutorijalima raspravljali smo o nekim primjerima zabadanja, ruganja i špijuniranja. Da biste bolje razumjeli razliku između podbadanja, ruganja i špijuniranja, prođite kroz primjere.