Es sieht aus wie die hamcrest org.hamcrest.Matchers
Klasse ist sehr ähnlich zu org.hamcrest.CoreMatchers
(obwohl es aussieht wie Matchers
hat mehr). Warum sollte ich wählen, CoreMatchers
zu verwenden (anders als es aussieht, ist die Klasse etwas kleiner), und warum sind diese zwei Klassen so ähnlich?Unterschied zwischen hamcrest-library Matchers und hamcrest-core CoreMatchers
Antwort
Die Hamcrest-Matcher sind in mehrere Module aufgeteilt. Der "Kern" enthält die grundlegendsten Matcher und abstrakte Klassen, die für den Aufbau anderer Matcher benötigt werden. org.hamcrest.CoreMatchers
enthält die Factory-Methoden für genau diese Matcher. Die anderen Matcher sind im "Bibliotheks" -Modul gruppiert nach den Arten von Objekten, die sie zuordnen, und sind optional. org.hamcrest.Matchers
enthält beide Gruppen von Matchern.
Welche sollten Sie verwenden? Ich importiere statisch alles ohne Probleme aus letzterem. Vielleicht könnten die Kompilierzeiten etwas länger dauern, aber das war nie ein Problem für mich. Ich habe dies an der Spitze meiner Unit-Tests zusätzlich zu den JUnit Importen:
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
Dies ergibt die beste Lesbarkeit in den Testverfahren.
Wenn Sie Mockito viel verwenden (wie ich), könnten Sie tun:
import org.mockito.Mockito;
oder
static import org.mockito.Mockito.*;
und da die Mockito
Klasse Matchers
Klasse Mockito des erstreckt, dann können Sie am Ende mit Konflikten zwischen den Matchers-Klassen oder ihren statischen Methoden. Mit CoreMatchers kann ich JUnit-abgeleitete CoreMatchers in der gleichen Klasse wie Mockito verwenden, ohne sie an ihrem Verwendungsort vollständig zu qualifizieren.
- 1. Was ist der Unterschied zwischen Mockito Matchers isA, any, eq und same?
- 2. Unterschied zwischen Vorzeichen & und *?
- 3. VBA: Unterschied zwischen & und +
- 4. Unterschied zwischen "**/* /" und "** /"?
- 5. Unterschied zwischen $ # und $ {# @}
- 6. Unterschied zwischen = und: =
- 7. Unterschied zwischen '#', '%' und '$'
- 8. MySQL: Unterschied zwischen ', `,' und '
- 9. C++ Unterschied zwischen '//' und '///'
- 10. Unterschied zwischen String.Empty und ""
- 11. Unterschied zwischen `% in%` und `==`
- 12. Unterschied zwischen numpy.logical_and und &
- 13. Unterschied zwischen. und #
- 14. Unterschied zwischen // und http: //
- 15. Mockito Matchers in Groovy
- 16. Unterschied zwischen -Wconversion zwischen gcc und g ++
- 17. Unterschied zwischen Wörterbuch und Hashtable
- 18. Unterschied zwischen FetchMode und FetchType
- 19. Unterschied zwischen Application_Start und Application_OnStart
- 20. Unterschied zwischen Uint8Array und Uint8ClampedArray
- 21. Unterschied zwischen BOOST_CHECK_CLOSE und BOOST_CHECK_CLOSE_FRACTION?
- 22. Unterschied zwischen Suche und Index
- 23. Unterschied zwischen AJAX und Senden
- 24. Unterschied zwischen Spekulation und Vorhersage
- 25. Unterschied zwischen inproc und outproc
- 26. Unterschied zwischen Clojure und Clojurescript?
- 27. Unterschied zwischen NSArray und NSMutableArray
- 28. Unterschied zwischen libcurl und libsoup
- 29. Unterschied zwischen DirectoryCatalog und AssemblyCatalog
- 30. Unterschied zwischen * y ++ und ++ * y?