Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā Mockito atiestatīšanas metode ir salīdzināta ar citām ņirgāšanās bibliotēkām


Kā Mockito atiestatīšanas metode ir salīdzināta ar citām ņirgāšanās bibliotēkām


Mockito `atiestatīšana ()` metode ir funkcija, kas ļauj atiestatīt izspēles objektu, lai to varētu izmantot atkārtoti. Tomēr to izmantošanu parasti attur no Mockito izstrādātājiem un lietotājiem, jo ​​tas var norādīt uz slikti izstrādātiem testiem vai kodu, kas ir pārāk sarežģīts un grūti tīri pārbaudāms [7] [9]. Tā vietā ieteicamā pieeja ir izveidot jaunas izspēles katrai testa metodei, lai nodrošinātu neatkarību un skaidrību testēšanā [7] [9].

Salīdzinājums ar citām ņirgāšanās bibliotēkām

1. JMOCK2: Atšķirībā no Mockito, JMock2 izmanto kontekstu, lai pārvaldītu cerības un izspēlētu informāciju, kas tiek atjaunota par katru testa metodi. Tas nozīmē, ka JMOCK2 nav nepieciešama skaidra atiestatīšana, kā to dara Mockito [10]. JMOCK2 pieeja palīdz saglabāt testa izolāciju, neprasot manuāli atiestatīt.

2. Easymock: Easymock arī parasti nav nepieciešama atiestatīšanas metode. Tas ir paredzēts, lai katram testam izveidotu jaunus izspēles objektus, līdzīgi kā ieteicamā prakse ar Mockito. Szczepan Faber, Mockito izstrādātājs, piemin, ka, lietojot Easymock, viņam nekad nav vajadzīga atiestatīšanas funkcija [8].

3. Mockito pret citām bibliotēkām: Parasti citas ņirgāšanās bibliotēkas, piemēram, JMock2 un Easymock, veicina tīrāku testēšanas pieeju, automātiski pārvaldot izspēles stāvokli vai veicinot jaunu izspēles izveidi katram testam. Mockito `atiestatīšana ()` metode ir drīzāk izņēmums, nevis norma ņirgāšanās ietvaros.

labākā prakse

- Izvairieties no `atiestatīšanas ()` `lietošanas: ja vien tas nav absolūti nepieciešams, piemēram, kad konteiners ievada izspēli un to nevar atjaunot katram testam, ieteicams izvairīties no` atiestatīšanas () `lietošanas. Tā vietā koncentrējieties uz vienkāršu, fokusētu testu izveidi ar jaunām izspēlēm katram scenārijam [7] [9].

- Izmantojiet `clearInvocation ()`: ja jums ir jāattīra mijiedarbība, neatiestatot stubbing, izmantojiet `clearInvocation ()`. Šī metode ļauj jums saglabāt stubbing, vienlaikus notīrot jebkādu reģistrētu mijiedarbību, kas var būt noderīga noteiktos scenārijos [5].

- Refaktora kods pārbaudāmības gadījumā: ja jums ir nepieciešams izmantot `atiestatīšanu ()` bieži, tas var norādīt, ka jūsu kods varētu gūt labumu no reakcijas, lai padarītu to pārbaudāmāku. Tas varētu ietvert sarežģītu metožu sadalīšanu vai atkarības injekcijas uzlabošanu [9].

Rezumējot, lai gan Mockito nodrošina “atiestatīšanas () metodi, tās izmantošana parasti tiek atturēta no jaunas izspēles radīšanas katram testam. Citas ņirgāšanās bibliotēkas bieži veicina līdzīgu praksi, uzsverot tīrus un neatkarīgus testus salīdzinājumā ar sarežģītu izspēles pārvaldību.

Atsauces:
[1] https://www.tutorialupoint.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-everyday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/approatriate-use-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareEngineering.stackexchange.com/questions/188299/is-this-an-apratiate-use-of-mockitos-reset-metod
[10] https://stackoverflow.com/questions/18164123/how-to-clean-op-mocks-in-spring-tests-when-using-mockito