Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Melyek a gyakori kivételek, ha a PowerMock -ot használják a Mockito 2.x -rel


Melyek a gyakori kivételek, ha a PowerMock -ot használják a Mockito 2.x -rel


Ha a PowerMock -ot használja a Mockito 2.x -rel, számos általános kivétel és kérdés merülhet fel a kompatibilitási problémák és a Mockito API változásai miatt. Íme néhány a leggyakoribb kivételek közül, és hogyan lehet kezelni őket:

1.

Ez a kivétel a rossz PowerMock API kiterjesztés használatakor fordul elő. A „PowerMock-Api-Mockito” kiterjesztés nem működik a Mockito 2.x-rel, ami ehhez a hibához vezet. A javításhoz a „PowerMock-Api-Mockito2” kiterjesztést kell használnia [1] [2].

2. A Mockito és a PowerMock nem kompatibilis verziói **

A Mockito és a PowerMock inkompatibilis verzióinak használata különféle kivételekhez vezethet. Például a PowerMock 1.6.5 kísérleti támogatással rendelkezik a Mockito 2.x számára, de ez nem megbízható. Győződjön meg arról, hogy kompatibilis verziókat használ, például a PowerMock 1.7.0 RC2 -t a Mockito 2.1.0 [1] [2].

3. IllegalAccesserror a Mockito 2.7.1 **

Ha a PowerMock 1.6.5 vagy az 1.7.0 RC2 -t használja a Mockito 2.7.1 -rel, akkor előfordulhat, hogy találkozhat egy „illegális accesserror” -nel. Ezt a problémát a PowerMock 1.7.0 RC4 [1] [4] használatával oldják meg.

4.

A Mockito 2.x -ben a PowerMock -szal az eredeti kivételeket „RuntimeExceptionProxy” -ként csomagolják. Ehhez szükség van a teszt kommentárok módosítására a `@Test (várható = someException.class)` -ról a `@Test (várható = kivétel.class) -ra a becsomagolt kivételek elkapására [1].

5.

A Mockito 2.x eltávolítva a WhiteBox -ot, így a PowerMock WhiteBox használata `FieldNotFoundException" -hoz vezethet. Ha ez bekövetkezik, fontolja meg a saját megvalósításának megírását vagy a kód újratelepítését a jobb tesztelhetőség érdekében [1] [2].

6. BefejezettanstubbingException **

Ez a kivétel akkor is előfordulhat, ha a kopás helyesnek tűnik. Győződjön meg arról, hogy a Stubbing módszerekben nincsenek beépített modellek, és hogy az összes daganat megfelelően befejeződjön olyan módszerekkel, mint a „thentururn ()” vagy a „thenthrow ()” [3].

7. Kompatibilitási problémák az újabb Mockito verziókkal **

Lehet, hogy a PowerMock nem kompatibilis az újabb Mockito verziókkal, mint például a Mockito 4.0.0. Ilyen esetekben szükség lehet a Mockito régebbi verziójának használata, amely kompatibilis a PowerMock -szal [10].

Összességében a Mockito 2.x -ba való áttérés a Mockito 1.x -től a PowerMock -szal magában foglalja ezeknek a kompatibilitási problémáknak a kezelését és a potenciálisan refaktoros teszteket, hogy elkerüljék a PowerMock teljes használatát [1] [4].

Idézetek:
[1] https://proandroiddev.com/mockito-2-x-overmock-migration-dips- és-tricks-top-top-118c52abd1d8
[2] https://dzone.com/articlice/mockito-2x-overpowermock-migration-top-10-tips- és- tricks
[3] https://stackoverflow.com/questions/33441494/mockito-powermockito-weird-stubbing-exception
[4] https://proandroiddev.com/mockito-2-x-migration-session-recording-droidcon-uk-2018-ba70619f3811
[5] https://github.com/powermock/powermock/issues/706
[6] https://github.com/mockito/mockito/issues/1606
[7] https://stackoverflow.com/questions/69394651/cannot-run-powermock-due-to-unpected-exception-and-org-mockito Exections-M-M-M-M-M-M-M-M-M-M-M-T
[8] https://stackoverflow.com/questions/61208743/powermock-with-mockito-dependences-issue
[9] https://groups.google.com/g/powermock/c/3g5z_t1rdzq
[10] https://github.com/powermock/powermock/issues/1109