Quando si lavora con Mockito e Hamcrest, diverse altre librerie possono migliorare le tue capacità di test. Ecco una panoramica dettagliata di alcune di queste biblioteche:
JUnit
** Junit è un framework di test fondamentali per Java che si integra bene sia con Mockito e Hamcrest. Fornisce una solida serie di annotazioni e asserzioni che possono essere utilizzate in combinazione con le capacità di beffardo di Mockito e i matcher di Hamcrest. Junit 5, in particolare, offre funzionalità migliorate come test parametrizzati e un migliore supporto per i test nidificati, rendendolo un potente strumento per scrivere test unitari completi.
powermock
** Powermock è un'estensione di Mockito (e EasyMock) che ti consente di deridere metodi statici, lezioni finali e metodi privati, che non sono possibili con il solo mockito. Ciò è particolarmente utile quando si tratta di codice legacy o librerie di terze parti che non sono progettate pensando alla testabilità. Tuttavia, Powermock è considerato più complesso e dovrebbe essere usato con parsimonia.
jmock
** JMock è un'altra biblioteca beffarda per Java che può essere utilizzata insieme a Hamcrest. Sebbene non sia ampiamente utilizzato come Mockito, JMock fornisce il proprio set di funzionalità per la creazione di oggetti simulati e può essere integrato con Hamcrest per asserzioni più espressive.
easymock
** EasyMock è un altro popolare framework beffardo che può essere utilizzato con Hamcrest. Fornisce un approccio diverso alla creazione di oggetti finti rispetto a Mockito, concentrandosi sui principi di sviluppo del comportamento (BDD). EasyMock può essere utilizzato in combinazione con PowerMock per capacità di derisione più avanzate.
assertj
** Assertj è una libreria di asserzione che fornisce un'API fluente per la scrittura di affermazioni. Sebbene possa essere utilizzato indipendentemente da Hamcrest, Assertj offre un modo più leggibile ed espressivo di scrivere asserzioni rispetto alle asserzioni tradizionali di Junit. Può essere utilizzato insieme a Mockito per Dorkito e Hamcrest per scenari di abbinamento più complessi.
Test di primavera
Se si lavora su un'applicazione basata su molla, il test Spring fornisce strumenti aggiuntivi per il test dei componenti a molla. Si integra bene con Mockito e può essere utilizzato per deridere i componenti specifici della primavera come servizi o repository. Sebbene non sia un sostituto diretto per Mockito, Spring Test offre funzionalità su misura per l'ecosistema a molla.
In sintesi, mentre Mockito e Hamcrest formano una potente combinazione per i test unitari, librerie come Junit, Powermock, JMock, EasyMock, Assertj e Spring Test possono migliorare ulteriormente le capacità di test a seconda delle esigenze specifiche e delle esigenze del progetto.
Citazioni:[1] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.hamcrest.mockitohamcrest.mockitohamcrest
[2] https://hamcrest.org/javahamcrest/tutorial
[3] https://www.javacodegeeks.com/2015/11/hamcrest-matchers-tutorial.html
[4] https://www.infoworld.com/article/2257253/junit-5-tutorial-part-1-unit-testing-with-junit-5-mockito-and-hamcrest.html
[5] https://stackoverflow.com/questions/20441594/mockito-and-hamcrest-how-to-verify-invocation-of-conlection-argument
[6] https://stackoverflow.com/questions/22697/whats-the-best-mock-framework-for-java
[7] https://tedvinke.wordpress.com/2013/12/17/mixing-junit-hamcrest-and-mockito-Explaining-nosuchmethoderror/
[8] https://github.com/mockito/mockito/issues/324
[9] https://stackoverflow.com/questions/18770943/mockito-junit-hamcrest-versioning
[10] https://hamcrest.org/javahamcrest/distributables