Pilkkaten palauttaminen Mockitossa on ominaisuus, jonka avulla voit käyttää pilkka -esineitä uudelleen tyhjentämällä niiden upottamisen ja vuorovaikutuksen. Reset () `: llä on kuitenkin yleensä lannistunut, ellei ehdottoman välttämätöntä, koska se voi osoittaa huonosti jäsenneltyjä testejä. Tässä on joitain parhaita käytäntöjä pilkkaamiseksi Mockitossa:
Ymmärtäminen, milloin käytetään `nollaa ()` `
-Vältä `nollaus ()`: Ensisijainen syy `nollaus ()` on olemassa tukemaan säiliöitä koskevia pilkkauksia, kuten vanhassa koodissa tai kolmansien osapuolien rajapinnoissa käytettyjä. Useimmissa tapauksissa, etenkin hyvin suunnitellulla testipohjaisella koodilla, sinun tulee välttää `nollaus ()` ja keskittyä sen sijaan pienten, keskittyneiden testimenetelmien luomiseen [2] [4].
- Koodin haju: Jos joudut käyttämään `nollaus ()` testimenetelmässä, se voi olla merkki siitä, että testit ovat liian monimutkaisia tai peittävät liian monta skenaariota. Tämä voi viitata tarvetta testata testit tai testattava koodi [2].
Vaihtoehdot 'Reset () `
- Luo uusia pilkkauksia: Pilkkaten palauttamisen sijaan harkitse uusien pilkka -esiintymien luomista jokaiselle testimenetelmälle. Tämä lähestymistapa varmistaa, että jokainen testi alkaa puhtaalla liuskekivillä, vähentäen nykyiseen [4] aikaisempien testien vuorovaikutusriskiä [4].
- Käytä `clearInvocations ()`: Jos joudut vain puhdistamaan kutsumishistoria (esim. Vahvistaa vuorovaikutuksia vaikuttamatta hölynpölyyn), käytä `mockito.clearinvocations ()`. Tämä menetelmä poistaa kutsumishistorian nollaamatta tynkäjä, jotka voivat olla hyödyllisiä tietyissä skenaarioissa [4].
Parhaat käytännöt pilkkaamisen nollaamiseksi
- Palauta jokaisen testin jälkeen: Jos sinun on nollattava pilkka, tee se jokaisen testimenetelmän jälkeen käyttämällä `@: n jälkeen" merkintää junitissa tai `jälkikäteen ()` Scalatestissa. Tämä varmistaa, että jokainen testi alkaa puhtaasta pilkkatilasta [3] [10].
- Vältä palauttamista ennen testit: Pilkkaaminen ennen kutakin testiä voi johtaa sekaannukseen siitä, missä tilassa pilkka on testin alussa. Uusien pilkkausten tai palauttamisen testien jälkeen on yleensä selkeämpää [10].
- Käytä kehysominaisuuksia: Kehyksillä, kuten keväällä, merkintöjen käyttäminen, kuten `@mockbean`, pystyy käsittelemään automaattisesti mallin nollaamista jokaisen testin jälkeen, poistaen manuaalisten nollausten tarpeen [10].
Päätelmä
Vaikka Mockito tarjoaa "nollaus ()" -menetelmän tietyille käyttötapauksille, on yleensä suositeltavaa välttää sen käyttöä puhtaamman, keskittyneemmän testisuunnittelun hyväksi. Luomalla uusia pilkkauksia jokaiselle testille tai käyttämällä kehysominaisuuksia pilkkatilan hallintaan, voit varmistaa vankkat ja ylläpidettävät testit ilman manuaalisia nollauksia.
Viittaukset:[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/
.
[8] https://github.com/mockito/mockito/issues/183
[9] https://www.toptal.com/java/a-guide-to-everyday-mockito
.