Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Katere so najboljše prakse za ponastavitev posmehov v Mockito


Katere so najboljše prakse za ponastavitev posmehov v Mockito


Ponastavitev posmehov v Mockito je funkcija, ki omogoča ponovno uporabo posmeh predmetov s čiščenjem njihovih trpljenja in interakcij. Vendar pa je uporaba `reset ()` na splošno odvračana, razen če je to nujno potrebno, saj lahko kaže na slabo strukturirane teste. Tu je nekaj najboljših praks za ponastavitev posmehov v Mockito:

Razumevanje, kdaj uporabiti `reset ()`

-Izogibajte se uporabi `reset ()`: Primarni razlog `reset ()` obstaja, je podpiranje posmehov, ki jih vbrizga vsebnik, kot so tisti, ki se uporabljajo v zapuščeni kodi ali tretjih vmesnikih. V večini primerov, zlasti z dobro zasnovano testno kodo, se izogibajte uporabi `reset ()` in se namesto tega osredotočite na ustvarjanje majhnih, osredotočenih preskusnih metod [2] [4].

- Vonj po kodi: Če se vam zdi, da morate uporabiti `reset ()` znotraj preskusne metode, je to lahko znak, da so vaši testi preveč zapleteni ali pokrivajo preveč scenarijev. To bi lahko pomenilo potrebo po preskusu testov ali kode, ki se preizkuša [2].

alternative za `reset ()`

- Ustvarite nove posnetke: Namesto da ponastavite posmeh, razmislite o ustvarjanju novih primerov za vsako preskusno metodo. Ta pristop zagotavlja, da se vsak test začne s čistim skrilavcem, kar zmanjšuje tveganje za interakcije iz prejšnjih testov, ki vplivajo na trenutni [4].

- Uporabite `clearInvocations ()`: Če morate samo očistiti zgodovino priklica (npr. Za preverjanje interakcij, ne da bi vplivali na trditev), uporabite `mockito.clearinvocations ()`. Ta metoda odstrani zgodovino priklica, ne da bi ponastavili škrbine, kar je lahko koristno v določenih scenarijih [4].

Najboljše prakse za ponastavitev posmeha

- Ponastavite po vsakem testu: Če morate ponastaviti posmeh, to storite po vsaki preskusni metodi z oznako `@po` v JUnit ali` aleach () `v Scalist. To zagotavlja, da se vsak test začne s čistim stanjem [3] [10].

- Izogibajte se ponastavitvi pred testi: Ponastavitev posmeha, preden lahko vsak test privede do zmede, v kakšnem stanju je posmeh na začetku testa. Na splošno je bolj jasno ustvariti nove posnetke ali ponastaviti po preskusih [10].

- Uporabite okvirne funkcije: v okvirih, kot je pomlad, z uporabo pripomb, kot je `@mockbean`, lahko samodejno prenese ponastavitev po vsakem testu, kar odpravi potrebo po ročnih ponastavitvah [10].

Zaključek

Medtem ko Mockito ponuja metodo reset () `za posebne primere uporabe, je na splošno priporočljivo, da se izognete njegovi uporabi v prid čistejšemu, bolj osredotočenemu testnemu zasnovi. Z ustvarjanjem novih posnetkov za vsak test ali uporabo okvirnih funkcij za upravljanje stanja posmeha lahko zagotovite robustne in vzdržljive teste, ne da bi potrebovali ročne ponastavitve.

Navedbe:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[3] https://twitter.github.io/finatra/user-guide/testing/mocks.html
[4] https://softwareengineering.stackexchange.com/Questions/188299/is-this-an-approise-use-of-mockitos-reset-method
[5] https://github.com/mockito/mockito-kotlin/isissue/513
[6] https://symflower.com/sl/company/blog/2024/how-to-do-mocking-spring-boot/
[7] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[8] https://github.com/mockito/mockito/isissue/183
[9] https://www.toptal.com/java/a-guide-to-everyday-mockito
[10] https://stackoverflow.com/Questions/18164123/how-to-clean-p-p-mocks-in-spring-test-whewen-uporaba-mockito