Hamcrest Sammlungen Kochbuch

1. Einleitung

Dieses Kochbuch zeigt, wie Sie Hamcrest-Matcher verwenden, um mit Sammlungen zu arbeiten und diese zu testen .

Das Format des Kochbuchs ist beispielhaft und praktisch - es sind 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.*;

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üfen Sie alle Elemente in einer Sammlung

- mit strenger Reihenfolge

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. 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 Codefragmente finden Sie auf GitHub - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.