Автор оригинала: Eugen Paraschiv.
1. Введение
Эта поваренная книга иллюстрирует, как использовать матчеры Hamcrest для работы с коллекциями и тестирования .
формат поваренной книги является примером сосредоточены и практические – никаких посторонних деталей и объяснений не требуется.
Во-первых, давайте сделаем быстрый статический импорт, чтобы охватить большую часть утилиты API мы собираемся использовать в следующем:
import static org.hamcrest.Matchers.*;
Дальнейшее чтение:
Хэмкрест Общие Основные Matchers
Хэмкрест Бин Матчерс
Тестирование с помощью Hamcrest
2. Поваренная книга
проверить, есть ли один элемент в коллекции
Listcollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasItem("cd")); assertThat(collection, not(hasItem("zz")));
проверить, есть ли в коллекции несколько элементов
Listcollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasItems("cd", "ef"));
проверить все элементы коллекции
– со строгим порядком
Listcollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, contains("ab", "cd", "ef"));
– с любым заказом
Listcollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, containsInAnyOrder("cd", "ab", "ef"));
проверить, пуста ли коллекция
Listcollection = Lists.newArrayList(); assertThat(collection, empty());
проверить, пуст ли массив
String[] array = new String[] { "ab" }; assertThat(array, not(emptyArray()));
проверить, пуста ли карта
Mapcollection = Maps.newHashMap(); assertThat(collection, equalTo(Collections.EMPTY_MAP));
проверить, если Итерируемый пуст
Iterablecollection = Lists.newArrayList(); assertThat(collection, emptyIterable());
проверить размер коллекции
Listcollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasSize(3));
проверка размера итерируемого
Iterablecollection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, Matchers. iterableWithSize(3));
проверить состояние по каждому пункту
Listcollection = Lists.newArrayList(15, 20, 25, 30); assertThat(collection, everyItem(greaterThan(10)));
3. Заключение
Этот формат является экспериментом – я публикации некоторых из моих внутренних разработок поваренные книги по данной теме – Google Guava и теперь Hamcrest. Цель состоит в том, чтобы эта информация легко доступна в Интернете – и добавить к нему всякий раз, когда я бегу в новый полезный пример.
Реализация всех этих примеров и фрагментов кода можно найти более на GitHub – это Maven основе проекта, поэтому она должна быть легко импортировать и работать, как она есть.