Pri uporabi Mockito za posmehovanje izjem lahko več pogostih pasti otežuje teste manj učinkovite ali težje vzdrževati. Tu je nekaj teh pasti in kako se jim izogniti:
1. Pretirano norčevanje **
Ena najpomembnejših pasti je pretirano spreminjanje. To se zgodi, ko se posmehujete preveč odvisnosti, kar vodi do testov, ki so krhki in težko vzdrževati. Prekomerna se lahko povzroči, da se testi bolj osredotočijo na posmeh kot na dejansko vedenje preskusnega sistema. Da bi se temu izognili, se osredotočite na posmehovanje samo sodelavcev, ki imajo ne trivialno vedenje, ali tiste, katerih interakcije želite preveriti. Uporabite resnične primere za preprosta sodelovanja [3].2. Neveljavne izjeme **
Mockito zagotavlja, da je izjema, ki se vrže, velja za specifično metodo. Če poskušate vrteti izjemo, ki ni na seznamu preverjenih izjem metode, se bo Mockito pritožil. Na primer, če metoda ne razglasi `ioException", se poskuša norčiti, da bi vrgel "ioexception", bo povzročil napako [1]. Vedno poskrbite, da je zasmehljiva izjema veljavna za metodo.3. Uporaba `thenthrow ()` z void metodami **
`ko (). thenthrow ()` ni mogoče uporabiti z metodami praznine, ker ni nobene povratne vrednosti. Namesto tega uporabite `dothrow ()` za vodne metode. Nepravilno mešanje teh metod lahko privede do napak [2].4. pomanjkanje specifičnosti **
Ko se posmehujejo izjem, je ključnega pomena, da ste natančno natančno, katere izjeme testirate. Izogibajte se pretiravanju z osredotočanjem na izjeme, pomembne za testni scenarij. To pomaga ohranjati teste osredotočene in vzdržljive [2] [8].5. Nepravilno ravnanje z usmrtitvami **
Prepričajte se, da je koda aplikacije pripravljena pravilno ravnati z izjemami, tudi ko se posmehuje med testi. To vključuje testiranje logike za ravnanje z izjemami, da se zagotovi, da se obnaša, kot je bilo pričakovano [2].6. Uporaba smiselnih sporočil o napakah **
Ko se posmehujejo izjem, vključite smiselna sporočila za diagnosticiranje težav, če testi ne uspejo. Ta praksa povečuje jasnost in učinkovitost vaših testov [2].7. Testiranje logike ravnanja z izjemo **
Prepričajte se, da koda obravnava izjeme, kot je bilo pričakovano. To vključuje preverjanje, ali se aplikacija pravilno obnaša, ko se vržejo izjeme, kar je ključnega pomena za gradnjo prožnih aplikacij [2].8. Ponastavitev in čiščenje posmeha **
Mockito ponuja funkcije, kot sta `reset ()` in `clearInvocations ()` za upravljanje posmeha. Vendar jih je treba uporabljati zmerno. Ponastavitev posmeha je treba opraviti le v redkih primerih, na primer, ko se posmeh vbrizga zabojnik in ga ni mogoče ponovno ustvariti za vsak test. Kliranje priklic je lahko koristno, če bi ponovno ustvarjanje posmeha privedlo do pomembnih režijskih stroškov [1].Če se zavedate teh pasti in sledite najboljšim praksam, lahko učinkovito uporabite Mockito za posmehovanje izjem in zagotovite, da so vaši testi robustni in vzdržni.
Navedbe:[1] https://www.toptal.com/java/a-guide-to-everyday-mockito
[2] https://www.browestack.com/guide/mockito-throw-xception
[3] https://javanexus.com/blog/avoiding-mockito-testing-pitfalts
[4] https://stackoverflow.com/questions/9186604/mockito-exception-when-requires-an-argument-which-has-to-be-a-method-call-on
[5] https://stackoverflow.com/questions/22540108/best-practices-with-mockito
[6] https://stackoverflow.com/questions/52512548/mock-method-to-do-not-throw-an-exception/52514628
[7] https://contributors.scala-lang.org/t/mockito-testing-nulls-and-exceptions/3915
[8] https://www.janbasktraining.com/community/java/throw-checked-exceptions-from-mocks-with-mockito