Kuchárska kniha zbierok Hamcrest
1. Úvod
Táto kuchárska kniha ilustruje, ako na to na prácu a testovanie zbierok využívajte porovnávače Hamcrest.
The formát kuchárskej knihy je zameraný na príklad a praktické - nie sú potrebné žiadne ďalšie podrobnosti a vysvetlenia.
Najskôr urobme rýchly statický import, ktorý pokryje väčšinu užitočných rozhraní API, ktoré budeme ďalej používať:
importovať statický org.hamcrest.Matchers. *;
2. Kuchárska kniha
skontrolujte, či je jeden prvok v zbierke
Zoznam zbierok = Lists.newArrayList ("ab", "cd", "ef"); assertThat (kolekcia, hasItem ("cd")); assertThat (kolekcia, nie (hasItem ("zz")));
skontrolujte, či sa v zbierke nachádza viac prvkov
Zoznam zbierok = Lists.newArrayList ("ab", "cd", "ef"); assertThat (zbierka, hasItems ("cd", "ef"));
skontrolovať všetky prvky v zbierke - s prísnym príkazom - s ľubovoľnou objednávkou skontrolujte, či je zbierka prázdna skontrolujte, či je pole prázdne skontrolujte, či je mapa prázdna skontrolujte, či je položka Iterable prázdna skontrolujte veľkosť zbierky kontrola veľkosti iterácie skontrolujte stav každej položky Tento formát je experimentom - vydávam niektoré svoje interné vývojové kuchárske knihy na danú tému - Google Guava a teraz Hamcrest. Cieľom je mať tieto informácie ľahko dostupné online - a doplniť ich, kedykoľvek narazím na nový užitočný príklad. Implementácia všetkých týchto príkladov a útržkov kódu nájdete na GitHub - toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť tak, ako je.Zoznam zbierok = Lists.newArrayList ("ab", "cd", "ef"); assertThat (kolekcia, obsahuje ("ab", "cd", "ef"));
Zoznam zbierok = Lists.newArrayList ("ab", "cd", "ef"); assertThat (zbierka, obsahujeInAnyOrder ("cd", "ab", "ef"));
Zoznam zbierok = Lists.newArrayList (); assertThat (zbierka, prázdne ());
Reťazec [] pole = nový Reťazec [] {"ab"}; assertThat (pole, nie (emptyArray ()));
Zbierka máp = Maps.newHashMap (); assertThat (kolekcia, equalTo (Collections.EMPTY_MAP));
Iterovateľná kolekcia = Lists.newArrayList (); assertThat (collection, emptyIterable ());
Zoznam zbierok = Lists.newArrayList ("ab", "cd", "ef"); assertThat (kolekcia, hasSize (3));
Iterable collection = Lists.newArrayList ("ab", "cd", "ef"); assertThat (kolekcia, zhody. iterableWithSize (3));
Zoznam zbierok = Lists.newArrayList (15, 20, 25, 30); assertThat (collection, everyItem (greaterThan (10)));
3. Záver