Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hur jämför Mockitos återställningsmetod med andra hånliga bibliotek


Hur jämför Mockitos återställningsmetod med andra hånliga bibliotek


Mockitos 'återställning ()' -metoden är en funktion som låter dig återställa ett håligt objekt så att det kan återanvändas. Emellertid är användningen i allmänhet avskräckt av Mockito -utvecklare och användare, eftersom det kan indikera dåligt utformade tester eller kod som är alltför komplex och svår att testa rent [7] [9]. Istället är den rekommenderade metoden att skapa nya håliga för varje testmetod för att säkerställa oberoende och tydlighet vid testning [7] [9].

Jämförelse med andra hånliga bibliotek

1. JMOCK2: Till skillnad från Mockito använder JMOCK2 ett sammanhang för att hantera förväntningar och hålig information, som byggs om för varje testmetod. Detta innebär att JMOCK2 inte kräver en uttrycklig återställning som Mockito gör [10]. JMOCK2: s strategi hjälper till att upprätthålla testisolering utan att behöva återställa håna manuellt.

2. EasyMock: EasyMock kräver inte heller en återställningsmetod. Den är utformad för att skapa nya håliga objekt för varje test, liknande den rekommenderade praxis med Mockito. Szczepan Faber, en Mockito -utvecklare, nämner att han aldrig behövde en återställningsfunktion när han använde EasyMock [8].

3. Mockito vs. Andra bibliotek: I allmänhet främjar andra hånliga bibliotek som JMOCK2 och EasyMock en renare testmetod genom att antingen automatiskt hantera Mock State eller uppmuntra skapandet av nya mocks för varje test. Mockitos 'återställning ()' -metoden är mer ett undantag snarare än normen i hånliga ramverk.

bästa metoder

- Undvik att använda `återställning ()`: Om inte absolut nödvändigt, till exempel när en hålig injiceras av en behållare och inte kan återskapas för varje test, rekommenderas det att undvika att använda `återställning (). Fokusera istället på att skapa enkla, fokuserade tester med nya mocks för varje scenario [7] [9].

- Använd `clearinvocations ()`: Om du behöver rensa interaktioner utan att återställa stubbning, använd `clearInvocations ()`. Denna metod gör att du kan bevara stubbning medan du rensar inspelade interaktioner, vilket kan vara användbart i vissa scenarier [5].

- Refaktorkod för testbarhet: Om du befinner dig som behöver använda "återställning ()" ofta kan det indikera att din kod kan dra nytta av refactoring för att göra den mer testbar. Detta kan innebära att man delar upp komplexa metoder eller förbättrar beroendeinjektion [9].

Sammanfattningsvis, medan Mockito tillhandahåller en 'återställning () -metod, är dess användning i allmänhet avskräckt till förmån för att skapa nya håliga för varje test. Andra hånliga bibliotek främjar ofta liknande metoder och betonar rena och oberoende tester över komplexa håliga hantering.

Citeringar:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://groups.google.com/g/mockito/c/y_ihdc8lx_m
[3] https://www.vogella.com/tutorials/mockito/article.html
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.reset
[5] https://www.toptal.com/java/a-guide-to-veryday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
]
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
]
]