Unterschied zwischen hamcrest-Matcher-Bibliothek und hamcrest-core-CoreMatchers
Sieht es aus wie die hamcrest org.hamcrest.Matchers
Klasse ist sehr ähnlich zu org.hamcrest.CoreMatchers
(obwohl es so aussieht Matchers
hat mehr). Warum sollte ich wählen, um CoreMatchers
(außer es sieht aus wie die Klasse ist etwas kleiner), und warum sind diese beiden Klassen so ähnlich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Hamcrest Matcher sind aufgeteilt in verschiedene Module. Die "core" beinhaltet die meisten grundlegenden Matcher und abstrakte Klassen erforderlich, für die Erstellung anderer Matcher.
org.hamcrest.CoreMatchers
beinhaltet die factory-Methoden nur für diese Matcher. Die anderen Matcher, sind in der "Bibliothek" - Modul gruppiert nach der Art der Objekte, die Sie passen und sind optional.org.hamcrest.Matchers
umfasst beide Sätze von Matcher.Welche sollte man verwenden? Ich statisch importieren Sie alles aus den letzteren ohne Probleme. Vielleicht ist die kompilierzeiten dauert etwas länger, aber das ist nie ein Problem für mich. Ich habe dies an der Spitze meiner unit-tests zusätzlich zu den JUnit-Importe:
Dieser bietet die beste Lesbarkeit in der test-Methoden.
Wenn Sie Mockito viele (wie ich), wird Sie möglicherweise tun:
oder
und da die
Mockito
Klasse erweitert Mockito istMatchers
Klasse, dann kannst du am Ende mit Konflikten entweder zwischen den Matcher-Klassen oder deren statische Methoden. Mit CoreMatchers ermöglicht mir, mit JUnit-abgeleitet CoreMatchers in der gleichen Klasse wie Mockito, die zimmerreserviereung, ohne das voll-qualifizieren Sie sich an Ihre Verwendungsstelle.Wenn Sie die Android JUnit-tests (nicht angeschlossen tests), die
CoreMatcher
s scheinen sich innerhalb des bereits im Lieferumfang enthalten junit Modul, während dieMatchers
nicht.So, sparen Aufwand und vermeiden das importieren von einer anderen Bibliothek, sollten Sie die
CoreMatcher
Versionen dieser Klassen, wenn Sie ausreichend:möglich ist, mit nur
CoreMatcher
s.