Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka Mockiton nollausmenetelmä verrataan muihin pilkkaaviin kirjastoihin


Kuinka Mockiton nollausmenetelmä verrataan muihin pilkkaaviin kirjastoihin


Mockiton `Reset ()` -menetelmä on ominaisuus, jonka avulla voit nollata mallisobjektin, jotta sitä voidaan käyttää uudelleen. Mockito -kehittäjät ja käyttäjät lannistavat kuitenkin sen käyttöä yleensä, koska se voi osoittaa huonosti suunniteltuja testejä tai koodia, joka on liian monimutkainen ja vaikea testata puhtaasti [7] [9]. Sen sijaan suositeltu lähestymistapa on luoda uusia pilkkauksia jokaiselle testimenetelmälle riippumattomuuden ja selkeyden varmistamiseksi testauksessa [7] [9].

Vertailu muihin pilkkaaviin kirjastoihin

1. JMock2: Toisin kuin Mockito, JMock2 käyttää kontekstia odotusten ja pilkkatietojen hallintaan, joka rakennetaan uudelleen jokaiselle testimenetelmälle. Tämä tarkoittaa, että JMock2 ei vaadi nimenomaista nollausta, kuten Mockito tekee [10]. JMock2: n lähestymistapa auttaa ylläpitämään testien eristystä tarvitsematta pilkkaa manuaalisesti.

2. EasyMock: EasyMock ei myöskään yleensä vaadi nollausmenetelmää. Se on suunniteltu luomaan uusia mallisobjekteja jokaiselle testille, samanlainen kuin suositeltu käytäntö Mockiton kanssa. Szczepan Faber, mockito -kehittäjä, mainitsee, ettei hän koskaan tarvinnut nollausominaisuutta EasyMockin käytön aikana [8].

3. Mockito vs. muut kirjastot: Yleensä muut pilkkaavat kirjastot, kuten JMock2 ja EasyMock, edistävät puhtaampaa testausmenetelmää joko hallitsemalla automaattisesti Mock -tilaa tai rohkaisemalla uusien pilkkausten luomista jokaiselle testille. Mockiton `Reset ()` -menetelmä on pikemminkin poikkeus pikemminkin kuin normi pilkkaamiskehyksillä.

parhaat käytännöt

- Vältä `nollaus ()`: Ellei ehdottoman välttämätöntä, kuten silloin, kun säiliö ruiskuttaa pilkkaa eikä sitä voida luoda uudelleen jokaiselle testille, on suositeltavaa välttää `nollaus ()` `. Keskity sen sijaan yksinkertaisten, keskittyneiden testien luomiseen uusilla pilkuilla jokaiselle skenaariolle [7] [9].

- Käytä `clearInvocations ()`: Jos joudut tyhjentämään vuorovaikutukset nollaamatta polttamista, käytä `clearInvocations ()`. Tämän menetelmän avulla voit säilyttää upottamisen tyhjentämällä kaikki tallennetut vuorovaikutukset, jotka voivat olla hyödyllisiä tietyissä skenaarioissa [5].

- Resektorikoodi testattavuus: Jos joudut käyttämään `nollaus ()` usein, se voi osoittaa, että koodisi voisi hyötyä refaktoroinnista, jotta se olisi testattavampi. Tähän voi kuulua monimutkaisten menetelmien hajottaminen tai riippuvuusinjektion parantaminen [9].

Yhteenvetona voidaan todeta, että vaikka Mockito tarjoaa `nollaus () -menetelmän, sen käyttöä lannistuu yleensä uusien pilkkausten luomiseksi jokaiselle testille. Muut pilkkaavat kirjastot edistävät usein samanlaisia ​​käytäntöjä, korostaen puhtaita ja riippumattomia testejä monimutkaisesta pilkkahallinnasta.

Viittaukset:
[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
.
[5] https://www.toptal.com/java/a-guide-to-everyday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
.
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9.
.