Hamcrest Collections Cookbook

1. Introduksjon

Denne kokeboken illustrerer hvordan benytt Hamcrest-matchere til å jobbe med og teste samlinger.

De kokebokformatet er eksempelvis fokusert og praktisk - ingen fremmede detaljer og forklaringer er nødvendige.

Først, la oss gjøre en rask statisk import for å dekke de fleste verktøy-APIene vi skal bruke neste:

importer statisk org.hamcrest.Matchers. *;

2. Kokeboken

sjekk om enkeltelement er i en samling

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

sjekk om flere elementer er i en samling

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

sjekk alle elementene i en samling

- med streng ordre

Listesamling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, inneholder ("ab", "cd", "ef"));

- med hvilken som helst bestilling

Listesamling = Lists.newArrayList ("ab", "cd", "ef"); assertThat (samling, inneholderInAnyOrder ("cd", "ab", "ef"));

sjekk om samlingen er tom

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

sjekk om matrisen er tom

String [] array = new String [] {"ab"}; assertThat (array, ikke (emptyArray ()));

sjekk om Kart er tomt

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

sjekk om Iterable er tom

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

sjekk størrelsen på en samling

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

sjekke størrelsen på en iterabel

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

sjekk tilstanden på hvert element

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

3. Konklusjon

Dette formatet er et eksperiment - jeg publiserer noen av mine interne utviklingskokebøker om et gitt emne - Google Guava og nå Hamcrest. Målet er å ha denne informasjonen tilgjengelig online - og legge til den når jeg støter på et nytt nyttig eksempel.

Implementeringen av alle disse eksemplene og kodebiter kan du finne på GitHub - dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre som det er.


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