Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vai ir kādas alternatīvas Hamcrest, kas labāk darbojas ar Mockito


Vai ir kādas alternatīvas Hamcrest, kas labāk darbojas ar Mockito


Strādājot ar Mockito, Hamcrest bieži tiek izmantots tā izteiksmīgajiem sērkociņiem, kas uzlabo testu lasāmību. Tomēr ir alternatīvas, kas var labi darboties ar Mockito, katra ar savām stiprajām un vājajām pusēm.

Assertj

Assertj ir populāra alternatīva Hamcrest, lai rakstītu apgalvojumus vienības testos. Tas nodrošina tekošu API, kas daudziem izstrādātājiem ir vieglāk lietojami un izteiksmīgāki nekā Hamcrest. Assertj sintakse bieži tiek dota priekšroka tās lasāmībai un spējai viegli izveidot pielāgotus apgalvojumus. Kaut arī Assertj tieši neintegrējas ar Mockito, kā to dara Hamcrest, to var izmantot kopā ar Mockito apgalvojumiem, padarot testus lasāmākus un uzturamākus. Tomēr Assertj galvenokārt ir vērsts uz apgalvojumiem, nevis uz Hamcrest plašākām spējām [1] [3].

patiesība

Patiesība ir vēl viena apgalvojumu bibliotēka, ko izstrādājusi Google. Tas piedāvā tekošu API, kas līdzīgs AssertJ, bet vairāk koncentrējas uz labāka auto pabeigšanas atbalsta nodrošināšanu IDE, kas var būt noderīgs pieejamo apgalvojumu atklāšanai. Patiesība nav tik bieži izmantota ar Mockito kā Hamcrest, bet to var izmantot apgalvojumiem testos. Tāpat kā Assertj, patiesība ir vairāk vērsta uz apgalvojumiem, nevis uz vispārējas nozīmes atbilstību, ko nodrošina Hamcrest [3].

Mockito iebūvētie sērkociņi

Pats Mockito nodrošina saskaņotājus, kurus var izmantot mijiedarbības un izspēles objektu pārbaudīšanai un pārbaudei. Šie saderētāji atgriež atbilstošo veidu (piemēram, `jebkurš (vesels skaitlis.klase)` atgriež `veselu skaitli`), kas atšķiras no Hamcrest Matchers, kas atgriež“ Matcher`. Lai izmantotu Hamcrest Matchers ar Mockito, varat izmantot `argthat` vai` MockitOhamcrest.Argthat`, lai pārveidotu Hamcrest Matcher par makito saderīgu formu [7].

pielāgotas ieviešanas

Scenārijiem, kad jūs nevēlaties izmantot ārējās bibliotēkas, varat ieviest savus saskaņotājus vai apgalvojumus. Šī pieeja ļauj pilnībā kontrolēt uzvedību un sintakse, bet prasa vairāk pūļu un uzturēšanas. Parasti tas nav ieteicams, ja vien jums nav ļoti specifiskas vajadzības, kuras neatbilst esošajām bibliotēkām.

Secinājums

Kaut arī Hamcrest tiek plaši izmantots ar Mockito tā elastības un izteiksmes dēļ, tādas alternatīvas kā Assertj un Patiesība var uzlabot jūsu testu apgalvojuma daļu. Ja jūs meklējat kaut ko tādu, kas labi integrējas ar Mockito atbilstošiem mērķiem, Hamcrest joprojām ir spēcīga izvēle, taču jūs varat izmantot tā sērkociņus līdztekus citām apgalvojumu bibliotēkām visaptverošākai pārbaudes pieredzei. Galu galā izvēle ir atkarīga no jūsu īpašajām vajadzībām un vēlmēm attiecībā uz lasāmību, lietošanas vienkāršību un apgalvojumu veidu vai atbilstību, kas jums jāveic testos.

Atsauces:
[1] https://www.reddit.com/r/java/comments/nj7dvd/who_here_are_using_the_hamcrest_api_and_why/
[2] https://www.javacodegeks.com/2015/11/hamcrest-satchers-tutorial.html
[3] https://truth.dev/comparison.html
[4] https://www.reddit.com/r/javahelp/comments/oqz8cn/unit_testing_with_mockito_framework_why_do_we/
.
[6.]
[7] https://stackoverflow.com/questions/8348046/mockitos-satcher-vs-hamcrest-sacher
[8] https://stackoverflow.com/questions/12606196/what-is-the-alternative-to-using-the-deprecated-hamcrest-thodod-is