Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Υπάρχουν άλλες βιβλιοθήκες που ενσωματώνονται καλά με το mockito και το hamcrest


Υπάρχουν άλλες βιβλιοθήκες που ενσωματώνονται καλά με το mockito και το hamcrest


Όταν εργάζεστε με το Mockito και το Hamcrest, αρκετές άλλες βιβλιοθήκες μπορούν να ενισχύσουν τις δυνατότητες δοκιμών σας. Ακολουθεί μια λεπτομερής επισκόπηση ορισμένων από αυτές τις βιβλιοθήκες:

junit

** Το Junit είναι ένα θεμελιώδες πλαίσιο δοκιμών για την Java που ενσωματώνεται καλά με το Mockito και το Hamcrest. Παρέχει ένα ισχυρό σύνολο σχολιασμών και ισχυρισμών που μπορούν να χρησιμοποιηθούν σε συνδυασμό με τις ψευδείς δυνατότητες του Mockito και τους αγώνες του Hamcrest. Το Junit 5, ειδικότερα, προσφέρει βελτιωμένα χαρακτηριστικά όπως παραμετροποιημένες δοκιμές και καλύτερη υποστήριξη για ένθετες δοκιμές, καθιστώντας το ένα ισχυρό εργαλείο για τη σύνταξη ολοκληρωμένων δοκιμών μονάδων.

powermock

** Το Powermock είναι μια επέκταση του mockito (και του Easymock) που σας επιτρέπει να ψεύσετε στατικές μεθόδους, τελικές τάξεις και ιδιωτικές μεθόδους, οι οποίες δεν είναι δυνατές μόνο με το Mockito. Αυτό είναι ιδιαίτερα χρήσιμο όταν ασχολείσαι με κώδικες κληρονομιάς ή βιβλιοθήκες τρίτων που δεν έχουν σχεδιαστεί με γνώμονα τη δοκιμασία. Ωστόσο, το Powermock θεωρείται πιο περίπλοκο και πρέπει να χρησιμοποιείται με φειδώ.

jmock

** Το JMock είναι μια άλλη κοροϊδευτική βιβλιοθήκη για την Java που μπορεί να χρησιμοποιηθεί παράλληλα με το Hamcrest. Παρόλο που δεν χρησιμοποιείται τόσο ευρέως ως Mockito, η JMOCK παρέχει το δικό του σύνολο χαρακτηριστικών για τη δημιουργία ψεύτικων αντικειμένων και μπορεί να ενσωματωθεί στο Hamcrest για πιο εκφραστικούς ισχυρισμούς.

easymock

** Το Easymock είναι ένα άλλο δημοφιλές πλαίσιο που μπορεί να χρησιμοποιηθεί με το Hamcrest. Παρέχει μια διαφορετική προσέγγιση για τη δημιουργία ψεύτικων αντικειμένων σε σύγκριση με το Mockito, εστιάζοντας στις αρχές ανάπτυξης που βασίζεται στη συμπεριφορά (BDD). Το Easymock μπορεί να χρησιμοποιηθεί σε συνδυασμό με το PowerMock για πιο προηγμένες δυνατότητες κοροϊδευτικής.

assertj

** Το AssertJ είναι μια βιβλιοθήκη ισχυρισμού που παρέχει ένα άπταιστα API για τη συγγραφή ισχυρισμών. Ενώ μπορεί να χρησιμοποιηθεί ανεξάρτητα από το Hamcrest, το AssertJ προσφέρει έναν πιο ευανάγνωστο και εκφραστικό τρόπο γραφής ισχυρισμών σε σύγκριση με τους παραδοσιακούς ισχυρισμούς Junit. Μπορεί να χρησιμοποιηθεί παράλληλα με το Mockito για το Mocking και το Hamcrest για πιο περίπλοκα σενάρια αντιστοίχισης.

Δοκιμή άνοιξης

Εάν εργάζεστε σε μια εφαρμογή με βάση την άνοιξη, η δοκιμή ελατηρίου παρέχει πρόσθετα εργαλεία για τη δοκιμή εξαρτημάτων ελατηρίου. Ενσωματώνει καλά με το Mockito και μπορεί να χρησιμοποιηθεί για να ψεύρει τα εξαρτήματα ειδικά για την άνοιξη όπως οι υπηρεσίες ή τα αποθετήρια. Αν και δεν είναι άμεση αντικατάσταση για το Mockito, η Spring Test προσφέρει χαρακτηριστικά προσαρμοσμένα στο άνοιγμα του οικοσυστήματος.

Συνοπτικά, ενώ οι Mockito και Hamcrest αποτελούν έναν ισχυρό συνδυασμό για δοκιμές μονάδων, βιβλιοθήκες όπως το Junit, το Powermock, το JMOCK, το Easymock, το AssertJ και το Spring Test μπορούν να ενισχύσουν περαιτέρω τις δυνατότητες δοκιμών σας ανάλογα με τις συγκεκριμένες ανάγκες και τις απαιτήσεις του έργου σας.

Αναφορές:
[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-inify-invocation-of collection-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/distributable