Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vilka är de bästa metoderna för att återställa håna i Mockito


Vilka är de bästa metoderna för att återställa håna i Mockito


Återställning av Mocks i Mockito är en funktion som gör att du kan återanvända Mock -objekt genom att rensa deras stubb och interaktioner. Att använda "återställning ()" avskräcks emellertid i allmänhet om det inte är absolut nödvändigt, eftersom det kan indikera dåligt strukturerade tester. Här är några bästa metoder för att återställa hån i Mockito:

Förstå när man ska använda `återställning ()`

-Undvik att använda `återställning ()`: Det främsta skälet till att 'återställning ()' finns är att stödja containerinjicerade hånar, såsom de som används i äldre kod eller tredjepartsgränssnitt. I de flesta fall, särskilt med väl utformad testdriven kod, bör du undvika att använda `återställning ()` och istället fokusera på att skapa små, fokuserade testmetoder [2] [4].

- Kodlukt: Om du befinner dig som behöver använda `återställning ()` inom en testmetod, kan det vara ett tecken på att dina tester är för komplexa eller täcker för många scenarier. Detta kan indikera ett behov av att refaktorera dina tester eller koden som testas [2].

Alternativ till `Återställ ()`

- Skapa nya mocks: Istället för att återställa håna, överväg att skapa nya håliga instanser för varje testmetod. Detta tillvägagångssätt säkerställer att varje test börjar med en ren skiffer, vilket minskar risken för interaktioner från tidigare tester som påverkar den nuvarande [4].

- Använd `clearInvocations ()`: Om du bara behöver rensa inbjudningshistoriken (t.ex. för att verifiera interaktioner utan att påverka stubbning), använd `mockito.clearinvocations ()`. Denna metod tar bort åkallelsehistorik utan att återställa stubbar, vilket kan vara användbart i vissa scenarier [4].

Bästa metoder för att återställa hånar

- Återställ efter varje test: Om du måste återställa hånar, gör det efter varje testmetod med en `@efter 'kommentar i JUnit eller` Aftereach () `i Scalatest. Detta säkerställer att varje test börjar med ett rent håligt tillstånd [3] [10].

- Undvik återställning innan tester: Återställning av håliga innan varje test kan leda till förvirring om vilket tillstånd som håpen är i i början av testet. Det är i allmänhet tydligare att skapa nya håna eller återställa efter tester [10].

- Använd ramfunktioner: I ramverk som vår kan du använda kommentarer som ``@mockbean` automatiskt hantera hålig återställning efter varje test, vilket eliminerar behovet av manuella återställningar [10].

Slutsats

Medan Mockito tillhandahåller metoden "återställning ()" för specifika användningsfall, är det i allmänhet tillrådligt att undvika dess användning till förmån för renare, mer fokuserad testdesign. Genom att skapa nya mocks för varje test eller använda ramfunktioner för att hantera håliga tillstånd kan du säkerställa robusta och underhållbara tester utan behov av manuella återställningar.

Citeringar:
[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-testing-advisor/selenium/methods/org.mockito.mockito.reset
[8] https://github.com/mockito/mockito/issues/183
[9] https://www.toptal.com/java/a-guide-to-veryday-mockito
]