Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Milyen előnyei vannak a Mockitohamcrest használatának a hagyományos Hamcrest gyufákkal szemben


Milyen előnyei vannak a Mockitohamcrest használatának a hagyományos Hamcrest gyufákkal szemben


A Mockitohamcrest használata a hagyományos Hamcrest -mérkőzéseknél számos előnyt kínál, különösen, ha a Mockito -val együttműködve az egységtesztek során gúnyolódik. Itt vannak a legfontosabb előnyök:

1. Integráció a Mockito -val: A Mockitohamcrest lehetővé teszi, hogy zökkenőmentesen integrálja a Hamcrest -matchereket a Mockito gúnyolódási keretével. Ez az integráció elengedhetetlen a csonkok beállításához vagy a módszerhívások ellenőrzéséhez komplex argumentum -illesztéssel, amelyet csak a hagyományos Hamcrest -mérkőzések nem támogatnak közvetlenül. Például használhatja a „Mockitohamcrest.Argthat” egy Hamcrest -matcher konvertálását Mockito -mérkőzésré, lehetővé téve a Hamcrest gazdag mérkőzéskészletének használatát Mockito kontextusban [1] [10] [12].

2. A verzió elkerülése inkompatibilitások: A Mockito elválasztotta a Hamcrest -től a 2.1.0 verzióban, hogy elkerülje a verzió összeférhetetlenségét, amely a múltban a felhasználók számára problémákat okozott. A Mockitohamcrest lehetőséget kínál a Hamcrest -matcherek használatára anélkül, hogy szorosan kapcsolnánk a Hamcrest egy adott verziójához, ezáltal csökkentve a potenciális konfliktusokat [1] [10].

3. Rugalmasság az argumentumok illesztésében: A Mockitohamcrest lehetővé teszi a Hamcrest rugalmas és kifejező csatlakozóinak használatát az összetett argumentum -megfelelő forgatókönyvek meghatározásához. Ez különösen akkor hasznos, ha ellenőriznie kell, hogy egy módszert olyan érvekkel hívtak meg, amelyek megfelelnek bizonyos feltételekhez, például egy bizonyos tartományon belüli specifikus szubstringeket vagy számokat tartalmazó karakterláncokat [4] [12].

4. Javított olvashatóság és öndokumentációs kód: A Hamcrest Matchers használatával a Mockitohamcrest segítségével a tesztek továbbra is ön dokumentumok és könnyen olvashatóak. A mérkőzések egyértelműen kifejezik a teszt szándékát, megkönnyítve a fejlesztők számára, hogy megértsék, mit tesztelnek anélkül, hogy további megjegyzésekre lenne szükség [3] [9].

5. Jobb hibaüzenetek: Ha az állítások meghibásodnak, a Hamcrest részletes és értelmes hibaüzeneteket szolgáltat, amelyek jelentősen segíthetnek a hibakeresésben. Ez különösen hasznos a Mockitohamcrest használatakor, mivel segít azonosítani, hogy miért nem sikerült a modell -ellenőrzés, megkönnyítve a problémák diagnosztizálását [3] [9].

6. Testreszabás és kiterjeszthetőség: A Hamcrest Matcher API lehetővé teszi az egyedi tesztelési igényekhez igazított egyedi mérkőzések létrehozását. A Mockitohamcrest -rel kombinálva ez a kiterjeszthetőség lehetővé teszi, hogy célzottabb és kifejezőbb teszteket írjon, amelyek pontosan megfelelnek az alkalmazás logikájának [6] [9].

Összefoglalva: a Mockitohamcrest a Mockito gúnyolódási képességeinek erőteljes kombinációját kínálja a Hamcrest rugalmas és kifejező csatlakozói és a teszt olvashatóságának, rugalmasságának és karbantarthatóságának javításával.

Idézetek:
[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%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