Hamcrest Collections kogebog

1. Introduktion

Denne kogebog illustrerer, hvordan man gør det gøre brug af Hamcrest matchere til at arbejde med og teste samlinger.

Det kogebogens format er eksempelvis fokuseret og praktisk - ingen fremmede detaljer og forklaringer er nødvendige.

Lad os først foretage en hurtig statisk import for at dække de fleste af de hjælpeprogrammer, vi skal bruge næste:

importer statisk org.hamcrest.Matchers. *;

2. Kogebogen

kontrollere, om et enkelt element er i en samling

Liste samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, hasItem ("cd")); assertThat (samling, ikke (hasItem ("zz")));

kontrollere, om der er flere elementer i en samling

Liste samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (collection, hasItems ("cd", "ef"));

tjek alle elementer i en samling

- med streng ordre

Liste samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, indeholder ("ab", "cd", "ef"));

- med enhver ordre

Liste samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, indeholderInAnyOrder ("cd", "ab", "ef"));

Kontroller, om indsamlingen er tom

Liste samling = Lists.newArrayList (); assertThat (samling, tom ());

Kontroller, om arrayet er tomt

Streng [] array = ny streng [] {"ab"}; assertThat (array, ikke (emptyArray ()));

Kontroller, om kortet er tomt

Kortsamling = Maps.newHashMap (); assertThat (collection, equalTo (Collections.EMPTY_MAP));

Kontroller, om Iterable er tom

Iterabel samling = Lists.newArrayList (); assertThat (samling, tomIterabel ());

kontrollere størrelsen på en samling

Liste samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, hasSize (3));

kontrol af størrelsen på en iterabel

Iterabel samling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, Matchers. iterableWithSize (3));

tjek tilstand på hvert emne

Listesamling = Lists.newArrayList (15, 20, 25, 30); assertThat (collection, everyItem (greaterThan (10)));

3. Konklusion

Dette format er et eksperiment - jeg udgiver nogle af mine interne udviklings-kogebøger om et givet emne - Google Guava og nu Hamcrest. Målet er at have disse oplysninger tilgængelige online - og tilføje dem, når jeg løber ind i et nyt nyttigt eksempel.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes på GitHub - dette er et Maven-baseret projekt, så det skal være let at importere og køre som det er.


$config[zx-auto] not found$config[zx-overlay] not found