Hamcrest Collections Cookbook

1. Inleiding

Dit kookboek illustreert hoe gebruik maken van Hamcrest-matchers om met collecties te werken en deze te testen.

De formaat van het kookboek is voorbeeldgericht en praktisch - geen externe details en uitleg nodig.

Laten we eerst een snelle statische import uitvoeren om de meeste hulpprogramma-API's te dekken die we hierna gaan gebruiken:

importeer statische org.hamcrest.Matchers. *;

2. Het kookboek

controleer of een enkel element zich in een verzameling bevindt

List collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (verzameling, hasItem ("cd")); assertThat (verzameling, niet (hasItem ("zz")));

controleer of er meerdere elementen in een collectie staan

List collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (verzameling, hasItems ("cd", "ef"));

controleer alle elementen in een verzameling

- met strikte volgorde

List collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (collectie, bevat ("ab", "cd", "ef"));

- bij elke bestelling

List collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (verzameling, bevatInAnyOrder ("cd", "ab", "ef"));

controleer of de collectie leeg is

Lijstverzameling = Lists.newArrayList (); assertThat (collectie, leeg ());

controleer of de array leeg is

String [] array = nieuwe String [] {"ab"}; assertThat (array, not (emptyArray ()));

controleer of de kaart leeg is

Kaartverzameling = Maps.newHashMap (); assertThat (collectie, equalTo (Collections.EMPTY_MAP));

controleer of Iterable leeg is

Iterable collection = Lists.newArrayList (); assertThat (collectie, emptyIterable ());

controleer de grootte van een collectie

List collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (collectie, hasSize (3));

het controleren van de grootte van een iterabele

Iterable collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (collectie, Matchers. iterableWithSize (3));

controleer de staat van elk item

Lijstverzameling = Lists.newArrayList (15, 20, 25, 30); assertThat (collectie, everyItem (groterThan (10)));

3. Conclusie

Dit formaat is een experiment - ik publiceer enkele van mijn kookboeken voor interne ontwikkeling over een bepaald onderwerp - Google Guava en nu Hamcrest. Het doel is om deze informatie direct online beschikbaar te hebben - en om er iets aan toe te voegen wanneer ik een nieuw bruikbaar voorbeeld tegenkom.

De implementatie van al deze voorbeelden en codefragmenten is te vinden op GitHub - dit is een op Maven gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.


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