Izmantojot Mockitohamcrest pār tradicionālajiem Hamcrest Matchers, piedāvā vairākas priekšrocības, it īpaši, strādājot ar Mockito, lai izsmietu vienības testos. Šeit ir galvenie ieguvumi:
1. Integrācija ar Mockito: MockitOhamcrest ļauj nemanāmi integrēt Hamcrest Matchers ar Mockito ņirgāšanās sistēmu. Šī integrācija ir būtiska, lai iestatītu stubus vai pārbaudītu metodes izsaukumus ar sarežģītu argumentu saskaņošanu, ko tieši neatbalsta tradicionālie Hamcrest Matchers. Piemēram, jūs varat izmantot `Mockitohamcrest.Argthat`, lai pārveidotu Hamcrest Matcher par Mockito Matcher, ļaujot Mockito kontekstā izmantot Hamcrest bagātīgo sērkociņu komplektu [1] [10] [12].
2. Izvairīšanās no versijas nesaderības: Mockito tika atsaistīts no Hamcrest 2.1.0 versijā, lai izvairītos no versijas nesaderības, kas iepriekš lietotājiem radīja problēmas. Mockitohamcrest nodrošina veidu, kā izmantot Hamcrest Matchers, un tas nav cieši savienots ar noteiktu Hamcrest versiju, tādējādi samazinot iespējamos konfliktus [1] [10].
3. Elastība argumentācijā: MockitOhamcrest ļauj izmantot Hamcrest elastīgos un izteiksmīgos saskaņotos, lai definētu sarežģītus argumentu saskaņošanas scenārijus. Tas ir īpaši noderīgi, ja jums jāpārbauda, vai metode tika izsaukta ar argumentiem, kas atbilst noteiktiem nosacījumiem, piemēram, virknes, kas satur noteiktus pamatnes vai skaitļus noteiktā diapazonā [4] [12].
4. Uzlabota lasāmība un pašdokumentējošais kods: izmantojot Hamcrest Matchers, izmantojot MockitoHamcrest, jūsu testi var palikt pašdokumentējami un viegli lasāmi. Materētāji skaidri pauž testa nodomu, padarot izstrādātājiem vieglāk saprast, kas tiek pārbaudīts, bez papildu komentāriem [3] [9].
5. Labāki kļūdu ziņojumi: ja apgalvojumi neizdodas, Hamcrest sniedz detalizētus un nozīmīgus kļūdu ziņojumus, kas var ievērojami palīdzēt atkļūdot. Tas ir īpaši izdevīgi, ja lietojat Mockitohamcrest, jo tas palīdz noteikt, kāpēc izspēles pārbaude neizdevās, padarot vieglāku problēmu diagnosticēšanu [3] [9].
6. Pielāgošana un paplašināmība: Hamcrest's Matcher API ļauj izveidot pielāgotus pielāgotos, kas pielāgoti jūsu īpašajām pārbaudes vajadzībām. Apvienojot to ar MockitoHamcrest, šī paplašināmība ļauj rakstīt mērķtiecīgākus un izteiksmīgākus testus, kas precīzi atbilst jūsu lietojumprogrammas loģikai [6] [9].
Rezumējot, Mockitohamcrest piedāvā spēcīgu Mockito ņirgāšanās spēju kombināciju ar Hamcrest elastīgajiem un izteiksmīgajiem samērētājiem, uzlabojot testa lasāmību, elastību un uzturējamību.
Atsauces:[1] https://site.mockito.org/javadoc/current/org/mockito/hamcrest/mockitohamcrest.html
[2] https://stackoverflow.com/questions/20441594/mockito-and-hamcrest-how-to-verify-invication-of-collection-argument
[3] https://automatenow.io/complete-guide-to-hamcrest-satchers/
.
[5] https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.9/org/mockito/argumentmatcher.html
[6] https://www.javacodegeks.com/2015/11/custom-hamcrest-satchers.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://webab.tudelft.nl/docs/mockito/3.10/org/mockito/hamcrest/mockitohamcrest.html
[11] https://truth.dev/comparison.html
[12] https://stackoverflow.com/questions/8348046/mockitos-satcher-vs-hamcrest-sacher