Nulstilling af mocks i Mockito er en funktion, der giver dig mulighed for at genbruge spottende genstande ved at rydde deres stubbing og interaktioner. Brug af `nulstilling ()` er generelt afskrækket, medmindre det er absolut nødvendigt, da det kan indikere dårligt strukturerede tests. Her er nogle bedste praksis til nulstilling af spot i Mockito:
Forstå, hvornår man skal bruge `nulstilling ()`
-Undgå at bruge `nulstilling ()`: den primære årsag `nulstilling ()` findes er at understøtte containerinjicerede hån, såsom dem, der bruges i ældre kode eller tredjepartsgrænseflader. I de fleste tilfælde, især med veludviklet testdrevet kode, skal du undgå at bruge `nulstilling ()` og i stedet fokusere på at skabe små, fokuserede testmetoder [2] [4].
- Kodelugt: Hvis du finder ud af, at du har brug for at bruge `nulstilling ()` inden for en testmetode, kan det være et tegn på, at dine tests er for komplekse eller dækker for mange scenarier. Dette kan indikere et behov for at refaktorere dine tests eller koden, der testes [2].
Alternativer til `nulstilling ()`
- Opret nye mocks: I stedet for at nulstille mocks, skal du overveje at oprette nye mock -forekomster for hver testmetode. Denne tilgang sikrer, at hver test starter med en ren skifer, hvilket reducerer risikoen for interaktioner fra tidligere tests, der påvirker den aktuelle [4].
- Brug `clearInvocations ()`: Hvis du kun behøver at rydde påkaldelseshistorikken (f.eks. For at verificere interaktioner uden at påvirke stubbing), skal du bruge `mockito.clearinvocations ()`. Denne metode fjerner påkaldelseshistorik uden at nulstille stubber, hvilket kan være nyttigt i visse scenarier [4].
Bedste praksis til nulstilling af hån
- Nulstil efter hver test: Hvis du skal nulstille mocks, skal du gøre det efter hver testmetode ved hjælp af en `@efter 'annotation i Junit eller' Aftereach () 'i Scalatest. Dette sikrer, at hver test starter med en ren mock -tilstand [3] [10].
- Undgå at nulstille inden test: Nulstilling af spot inden hver test kan føre til forvirring omkring, hvad staten spottet er i i starten af testen. Det er generelt klarere at oprette nye mocks eller nulstille efter test [10].
- Brug rammefunktioner: I rammer som forår kan du bruge kommentarer som `@mockbean` automatisk håndtere mock -nulstilling efter hver test, hvilket eliminerer behovet for manuelle nulstillinger [10].
Konklusion
Mens Mockito leverer metoden `nulstilling ()` til specifikke brugssager, anbefales det generelt at undgå dens anvendelse til fordel for renere, mere fokuseret testdesign. Ved at oprette nye mocks til hver test eller bruge rammefunktioner til at styre mock -tilstand, kan du sikre robuste og vedligeholdelige tests uden behov for manuelle nulstillinger.
Citater:[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
)
[5] https://github.com/mockito/mockito-kotlin/issues/513
[6] https://symflower.com/en/company/blog/2024/how-to-do-mocking-spring-boot/
[7] https://www.lambdatest.com/automation-test-advisor/selenium/metods/org.mockito.mockito.reset
[8] https://github.com/mockito/mockito/issues/183
[9] https://www.toptal.com/java/a-guide-to-veryday-mockito
[10] https://stackoverflow.com/questions/18164123/how-to-clean-up-mocks--in-spring-tests-when-using-mockito