Hamcrest Collections Kochbuch
1. Einführung
Dieses Kochbuch zeigt, wie manmake use of Hamcrest matchers to work with and test collections macht.
Dieformat of the cookbook is example focused und praktisch - keine überflüssigen Details und Erklärungen erforderlich.
Lassen Sie uns zunächst einen schnellen statischen Import durchführen, um die meisten Dienstprogramm-APIs abzudecken, die wir als Nächstes verwenden werden:
import static org.hamcrest.Matchers.*;
Weitere Lektüre:
Common Core Matcher von Hamcrest
Entdecken Sie die verschiedenen Methoden der CoreMatchers-Klasse in der Hamcrest-Bibliothek.
Hamcrest Bean Matchers
Erfahren Sie mehr über Hamcrest-Bohnen-Matcher - ein Tool, mit dem Sie Aussagen auf effektive Weise treffen können, eine häufig verwendete Funktion beim Schreiben von Unit-Tests.
Testen mit Hamcrest
In diesem sehr praktischen Tutorial konzentrieren wir uns auf die Verwendung der Hamcrest-API und auf das Schreiben übersichtlicherer und intuitiverer Komponententests für unsere Software.
2. Das Kochbuch
Überprüfen Sie, ob sich ein einzelnes Element in einer Sammlung befindet
List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasItem("cd"));
assertThat(collection, not(hasItem("zz")));
Überprüfen Sie, ob sich mehrere Elemente in einer Sammlung befinden
List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasItems("cd", "ef"));
* überprüfe alle Elemente in einer Sammlung *
- mit strenger Ordnung
List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, contains("ab", "cd", "ef"));
- bei jeder Bestellung
List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, containsInAnyOrder("cd", "ab", "ef"));
Überprüfen Sie, ob die Sammlung leer ist
List collection = Lists.newArrayList();
assertThat(collection, empty());
Überprüfen Sie, ob das Array leer ist
String[] array = new String[] { "ab" };
assertThat(array, not(emptyArray()));
Überprüfen Sie, ob die Karte leer ist
Map collection = Maps.newHashMap();
assertThat(collection, equalTo(Collections.EMPTY_MAP));
Überprüfen Sie, ob Iterable leer ist
Iterable collection = Lists.newArrayList();
assertThat(collection, emptyIterable());
Überprüfen Sie die Größe einer Sammlung
List collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, hasSize(3));
Überprüfen der Größe eines iterable
Iterable collection = Lists.newArrayList("ab", "cd", "ef");
assertThat(collection, Matchers. iterableWithSize(3));
Überprüfen Sie den Zustand jedes Artikels
List collection = Lists.newArrayList(15, 20, 25, 30);
assertThat(collection, everyItem(greaterThan(10)));
3. Fazit
Dieses Format ist ein Experiment. Ich veröffentliche einige meiner internen Entwicklungskochbücher zu einem bestimmten Thema -Google Guava und jetzt Hamcrest. Das Ziel ist es, diese Informationen online verfügbar zu machen - und sie zu ergänzen, wenn ich auf ein neues nützliches Beispiel stoße.
Die Implementierung all dieser Beispiele und Codefragmentecan be found over on GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.