PowerMocki kasutamine koos Mockitoga hõlmab mõlema raamistike tugevuste ühendamist ühiku testimise võimaluste suurendamiseks. Siiski on olulisi erinevusi Mockito 1.x -ga PowerMocki kasutamisel versus 2.x, peamiselt ühilduvusprobleemide ja funktsioonide muutuste tõttu.
Powermock koos Mockito 1.x
- Ühilduvus: PowerMock on olnud Mockito 1.x -ga ühilduvam, võimaldades hõlpsamat integreerimist ja kasutamist selliste funktsioonide nagu staatiliste meetodite, lõppklasside ja privaatsete meetodite pilkamine. See ühilduvus muutis lihtsamaks testide seadistamise, mis nõuavad neid täiustatud pilkamisvõimalusi.
- Funktsioonide komplekt: PowerMock pakkus laialdast tuge staatiliste meetodite, konstruktorite ja privaatsete meetodite pilkamisele, mida Mockito 1.x ei toetanud natiivselt. See muutis selle ideaalseks pärandkoodi või keerukate süsteemide testimiseks, kui selline pilkamine oli vajalik.
- Seadistamine: testid kasutasid tavaliselt `@Runwith (PowerMockrunner.class)` Annotation ja `@prepareFerTest`, et täpsustada klasse, mis vajasid pilkamist. See seadistus võimaldas testimiskeskkonna üle põhjalikku kontrolli.
Powermock koos Mockito 2.x
- Ühilduvusprobleemid: Mockito 2.x tutvustas olulisi muudatusi, mis mõjutasid ühilduvust Powermockiga. Powermocki varajased versioonid olid Mockito 2.x eksperimentaalse toetusega, kuid see polnud tugev, põhjustades integratsiooniprobleeme. PowerMocki versioonid 1.7.0 ja uuemad pakuvad paremat tuge, kuid kasutajad peavad vigade vältimiseks tagama versiooni ühilduvuse [1] [2].
- Funktsiooni muudatused: Mockito 2.x tutvustas tuge lõppklasside ja meetodite pilkamiseks, vähendades mõnel juhul powerMocki vajadust. Powermock pakub siiski staatilistele ja privaatsetele meetoditele siiski põhjalikumat tuge, muutes selle eelistatavaks keerukate või pärandkoodide jaoks [3].
- Seadistamine ja konfiguratsioon: seadistamine jääb sarnaseks, nõudes @runwith (powermockrunner.class) `ja`@@preparefortEst`. Kuid kasutajad peavad olema versiooni ühilduvuse suhtes ettevaatlikud ja võib-olla peavad nad konfigureerima PowerMocki, et delegeerida Mockito "Mock-Maker-Line", et parem integreerimine Mockito 2.x funktsioonidega [1] [4].
Peamised erinevused
- versiooni ühilduvus: kõige olulisem erinevus on ühilduvuse väljakutse Mockito 2.x -ga. Integratsiooniprobleemide vältimiseks peavad kasutajad hoolikalt valima ühilduvad versioonid.
- Funktsiooni kattumine: Mockito 2.x vähendab mõne stsenaariumi korral vajadust PowerMocki järele, toetades lõppklassi ja meetodit pilkamist. Powermock on siiski staatilise ja privaatse meetodi pilkamise jaoks hädavajalik.
- jõudlus ja keerukus: Powermock on üldiselt aeglasem ja keerulisem, kui seadistada ainult Mockitoga, kuid see pakub võimsamaid funktsioone keerukate koodistruktuuride käitlemiseks.
Kokkuvõtlikult võib öelda, et kuigi Powermockit saab kasutada nii Mockito 1.x kui ka 2.x abil, nõuab üleminek Mockito 2.x -le hoolikat tähelepanu versiooni ühilduvusele ja võib mõnel juhul vähendada Powermocki vajalikkust Mockito laiendatud funktsioonikomplekti tõttu.
Tsitaadid:[1] https://github.com/powermock/powermock/wiki/mockito
]
]
[4] https://proandroiddev.com/mockito-2-x Migration-Session-Session- ---Droidcon-2018-2018-BA70619F3811
[5] https://powermock.github.io
[6] https://groups.google.com/g/powermock/c/ewzs5Malrn0
]
]