Å bruke Mockitohamcrest over tradisjonelle Hamcrest -matchere tilbyr flere fordeler, spesielt når du jobber med Mockito for hån i enhetstester. Her er de viktigste fordelene:
1. Integrasjon med Mockito: Mockitohamcrest lar deg sømløst integrere Hamcrest -matchere med Mockitos hånlige rammeverk. Denne integrasjonen er avgjørende for å sette opp stubber eller verifisere metodesamtaler med komplekse argumentasjonsmatching, som ikke støttes direkte av tradisjonelle Hamcrest -matchere alene. For eksempel kan du bruke `Mockitohamcrest.argThat` for å konvertere en Hamcrest -matcher til en Mockito -matcher, slik at du kan bruke Hamcrests rike sett med matchere i Mockito -sammenhenger [1] [10] [12].
2. Unngåelse av versjon av versjoner: Mockito ble koblet fra Hamcrest i versjon 2.1.0 for å unngå versjon av versjoner som hadde forårsaket problemer for brukere i det siste. Mockitohamcrest gir en måte å bruke Hamcrest -matchere uten å være tett koblet til en spesifikk versjon av Hamcrest, og dermed redusere potensielle konflikter [1] [10].
3. Fleksibilitet i argumentets matching: Mockitohamcrest lar deg bruke Hamcrests fleksible og uttrykksfulle matchere for å definere komplekse argumentets samsvarende scenarier. Dette er spesielt nyttig når du trenger å bekrefte at en metode ble kalt med argumenter som samsvarer med visse forhold, for eksempel strenger som inneholder spesifikke underlag eller tall innenfor et visst område [4] [12].
4. Forbedret lesbarhet og selvdokumenterende kode: Ved å bruke Hamcrest-matchere gjennom Mockitohamcrest, kan testene dine forbli selvdokumenterende og enkle å lese. Matcherne uttrykker tydelig intensjonen med testen, noe som gjør det lettere for utviklere å forstå hva som testes uten å trenge flere kommentarer [3] [9].
5. Bedre feilmeldinger: Når påstander mislykkes, gir Hamcrest detaljerte og meningsfulle feilmeldinger, noe som betydelig kan hjelpe til med å feilsøke. Dette er spesielt gunstig når du bruker mockitohamcrest, da det hjelper til med å identifisere hvorfor en hånlig verifisering mislyktes, noe som gjør det lettere å diagnostisere problemer [3] [9].
6. Tilpasning og utvidbarhet: Hamcrests Matcher API lar deg lage tilpassede matchere tilpasset dine spesifikke testbehov. Når du kombineres med Mockitohamcrest, kan denne utvidbarheten deg skrive mer målrettede og uttrykksfulle tester som nøyaktig samsvarer med applikasjonens logikk [6] [9].
Oppsummert tilbyr Mockitohamcrest en kraftig kombinasjon av Mockitos hånlige evner med Hamcrests fleksible og uttrykksfulle matchere, forbedrende testlesbarhet, fleksibilitet og vedlikeholdbarhet.
Sitasjoner:[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-samling-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%2FMockito%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/comparison.html
[12] https://stackoverflow.com/questions/8348046/mockitos-matcher-vs-hamcrest-matcher