Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Millised on levinud erandid PowerMocki kasutamisel koos Mockito 2.x


Millised on levinud erandid PowerMocki kasutamisel koos Mockito 2.x


PowerMocki kasutamisel koos Mockito 2.x abil võivad tekkida mitmed levinud erandid ja probleemid ühilduvusprobleemide ja Mockito API muutuste tõttu. Siin on mõned kõige levinumad erandid ja kuidas nendega tegeleda:

1. NoclassdeffoundError: org.mockito.cgglib.proxy.methodinterceptor **

See erand ilmneb vale PowerMock API laienduse kasutamisel. Laiendus "Powermock-API-Mockito" ei tööta Mockito 2.x-ga, mis viib selle veani. Selle parandamiseks peaksite kasutama pikendust Powermock-API-Mockito2` [1] [2].

2. Mockito ja PowerMocki kokkusobimatud versioonid **

Mockito ja PowerMocki kokkusobimatute versioonide kasutamine võib põhjustada mitmesuguseid erandeid. Näiteks Powermock 1.6.5 on Mockito 2.x eksperimentaalne tugi, kuid see pole usaldusväärne. Veenduge, et kasutate ühilduvaid versioone, näiteks PowerMock 1.7.0 RC2 koos Mockito 2.1.0 [1] [2].

3.

PowerMock 1.6.5 või 1.7.0 RC2 kasutamisel koos Mockito 2.7.1 abil võite kohata "illegalAccessError". See probleem lahendatakse, kasutades PowerMock 1.7.0 RC4 [1] [4].

4. RuntimeexceptionProxy Mockito 2.x koos PowerMockiga **

PowerMockiga Mockito 2.x on algsed erandid mähitud kui "RuntimeexceptionProxy". See nõuab testi annotatsioonide muutmist alates `@Test (eeldatav = someException.class)` väärtuseks `@Test (eeldatav = erand.klass)`, et kinni panna mähitud erandeid [1].

5. FieldNotFoundException koos PowerMocki valgekastiga **

Mockito 2.x eemaldas Whiteboxi, nii et PowerMocki valgekasti kasutamine võib põhjustada "FieldNotFoundException". Kui see juhtub, kaaluge parema testitavuse saamiseks omaenda rakendamise kirjutamist või koodi refrakteerimist [1] [2].

6.

See erand võib ilmneda ka siis, kui tüvib näib õige. Veenduge, et koputamismeetodite sees pole sisemist pilkamist ja et kogu kägistamine oleks korralikult lõpule viidud selliste meetoditega nagu `siis return () või" thenthrow () "[3].

7. Ühildumisprobleemid uuemate Mockito versioonidega **

PowerMock ei pruugi ühilduda uuemate Mockito versioonidega, näiteks Mockito 4.0.0. Sellistel juhtudel võib olla vajalik Powermockiga ühilduva Mockito vanema versiooni kasutamine [10].

Üldiselt hõlmab PowerMockiga Mockito 1.x -ist Mockito 2.x -i üleviimine nende ühilduvusprobleemide lahendamist ja testide potentsiaalselt refraktogeerimist, et vältida PowerMocki täielikku kasutamist [1] [4].

Tsitaadid:
]
]
]
[4] https://proandroiddev.com/mockito-2-x Migration-Session-Session- ---Droidcon-2018-2018-BA70619F3811
[5] https://github.com/powermock/powermock/issues/706
[6] https://github.com/mockito/mockito/issues/1606
]
]
[9] https://groups.google.com/g/powermock/c/3g5z_t1rdzq
[10] https://github.com/powermock/powermock/issues/1109