„Mockitohamcrest“ naudojimas dėl tradicinių „Hamcrest Matchers“ suteikia keletą pranašumų, ypač dirbant su „Mockito“ tyčiojant iš vienetų testų. Čia yra pagrindiniai pranašumai:
1. Integracija su „Mockito“: „Mockitohamcrest“ leidžia sklandžiai integruoti „Hamcrest“ rungtynes su „Mockito“ tyčiojimosi sistema. Ši integracija yra labai svarbi nustatant strypus ar tikrinant metodo skambučius su sudėtingais argumentų suderinimu, kurio tiesiogiai nepalaiko vien tradiciniai „Hamcrest“ žaidėjai. Pvz., Galite naudoti „Mockitohamcrest.Argthat“ konvertuoti „Hamcrest“ atitiktį į „Mockito“ atitiktį, leidžiančią naudoti turtingą „Hamcrest“ rungtynių rinkinį „Mockito“ kontekste [1] [10] [12].
2. VEIKSMINIŲ VERSIJOS NUSTATYMO VEIKSMO VEIKSMINIS: „Mockito“ buvo atsiejamas nuo „Hamcrest“ 2.1.0 versijos, kad būtų išvengta versijos nesuderinamumo, kuris praeityje sukėlė problemų vartotojams. „Mockitohamcrest“ suteikia būdą naudoti „Hamcrest Matchers“, nebūdamas sandariai sujungtas su konkrečia „Hamcrest“ versija, taip sumažinant galimus konfliktus [1] [10].
3. Tai ypač naudinga, kai reikia patikrinti, ar metodas buvo vadinamas su argumentais, atitinkančiais tam tikras sąlygas, pavyzdžiui, stygos, kuriose yra tam tikro diapazono specifiniai substriniai ar skaičiai [4] [12].
4. Patobulintas skaitomumas ir savęs dokumentinis kodas: Naudodami „Hamcrest“ atitikmenis per „Mockitohamcrest“, jūsų testai gali išlikti savarankiški ir lengvai skaitomi. Materiai aiškiai išreiškia testo ketinimą, todėl kūrėjams buvo lengviau suprasti, kas yra tikrinama, nereikia papildomų komentarų [3] [9].
5. Geresni klaidų pranešimai: Kai tvirtinimai nepavyksta, „Hamcrest“ pateikia išsamius ir prasmingus klaidų pranešimus, kurie gali žymiai padėti derinant. Tai ypač naudinga naudojant „Mockitohamcrest“, nes tai padeda nustatyti, kodėl nepavyko patikrinti pavyzdžių, todėl buvo lengviau diagnozuoti problemas [3] [9].
6. Tinkinimas ir išplėtimas: „Hamcrest“ atitikties API leidžia kurti pasirinktinius atitikmenis, pritaikytus jūsų konkrečiems testavimo poreikiams. Derinant su „Mockitohamcrest“, šis išplėtimas suteikia galimybę parašyti tikslingesnius ir išraiškingesnius testus, kurie tiksliai atitinka jūsų programos logiką [6] [9].
Apibendrinant galima pasakyti, kad „Mockitohamcrest“ siūlo galingą „Mockito“ tyčiojimosi galimybių derinį su lanksčiais ir išraiškingais „Hamcrest“ žaidėjais, padidinančiais bandymo skaitomumą, lankstumą ir prižiūrėjimą.
Citatos:[1] https://site.mockito.org/javadoc/current/org/mockito/hamcrest/mockitohamcrest.html
[2] https://stackoverflow.com/questions/20441594/mockito-and-hamcrest-how-to-verify-invocation-of-collection-argument
[3] https://automatenow.io/complete-guide-to-hamcrest-matchers/
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.hamcrest.mockitohamcrest.mockitohamcrest
[5] https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.9/org/mockito/argumentMatcher.html
[6] https://www.javacodegeeks.com/2015/11/custom-hamcrest-matchers.html
[7] https://www.lambdatest.com/automation-testing-advisor/selenium/classes/org.mockito.hamcrest.mockitohamcrest
[8] https://site.mockito.org/javadoc/current/index.html?org%2fMocko%2FargumentMatcher.html
[9] https://www.vogella.com/tutorials/hamcrest/article.html
[10] https://weblab.tudelft.nl/docs/mockito/3.10/org/mockito/hamcrest/mockitohamcrest.html
[11] https://truth.dev/comparion.html
[12] https://stackoverflow.com/questions/8348046/mockitos-matcher-vs-hamcrest-matcher