Hamcrest Text Matchers
1. обзор
В этом руководстве мы изучим средства поиска текста Hamcrest.
Мы обсуждали в целом средства сопоставления Hamcrest ранее вtesting with Hamcrest, в этом руководстве мы сосредоточимся только на сопоставителяхText.
2. Конфигурация Maven
Во-первых, нам нужно добавить следующую зависимость к нашемуpom.xml:
org.hamcrest
java-hamcrest
2.0.0.0
test
Последнюю версиюjava-hamcrest можно загрузить с Maven Central.
Теперь мы перейдем непосредственно к анализаторам текста Hamcrest.
3. Сопоставители текстового равенства
Конечно, мы можем проверить, равны ли две строки, используя стандартный сопоставительisEqual().
Кроме того, у нас есть два сопоставления, специфичных для типовString:equalToIgnoringCase() иequalToIgnoringWhiteSpace().
Давайте проверим, равны ли дваStrings - без учета регистра:
@Test
public void whenTwoStringsAreEqual_thenCorrect() {
String first = "hello";
String second = "Hello";
assertThat(first, equalToIgnoringCase(second));
}
Мы также можем проверить, равны ли дваStrings, игнорируя начальные и конечные пробелы:
@Test
public void whenTwoStringsAreEqualWithWhiteSpace_thenCorrect() {
String first = "hello";
String second = " Hello ";
assertThat(first, equalToIgnoringWhiteSpace(second));
}
4. Сопоставители пустого текста
Мы можем проверить, является лиString пустым, что означает, что он содержит только пробелы, используя сопоставителиblankString() иblankOrNullString():
@Test
public void whenStringIsBlank_thenCorrect() {
String first = " ";
String second = null;
assertThat(first, blankString());
assertThat(first, blankOrNullString());
assertThat(second, blankOrNullString());
}
С другой стороны, если мы хотим проверить, пуст лиString, мы можем использовать сопоставителиemptyString():
@Test
public void whenStringIsEmpty_thenCorrect() {
String first = "";
String second = null;
assertThat(first, emptyString());
assertThat(first, emptyOrNullString());
assertThat(second, emptyOrNullString());
}
5. Сопоставители шаблонов
Мы также можем проверить, соответствует ли данный текст регулярному выражению, используя функциюmatchesPattern():
@Test
public void whenStringMatchPattern_thenCorrect() {
String first = "hello";
assertThat(first, matchesPattern("[a-z]+"));
}
6. Сопоставители подстрок
Мы можем определить, содержит ли текст другой подтекст, используя функциюcontainsString() илиcontainsStringIgnoringCase():
@Test
public void whenVerifyStringContains_thenCorrect() {
String first = "hello";
assertThat(first, containsString("lo"));
assertThat(first, containsStringIgnoringCase("EL"));
}
Если мы ожидаем, что подстроки будут в определенном порядке, мы можем вызвать сопоставлениеstringContainsInOrder():
@Test
public void whenVerifyStringContainsInOrder_thenCorrect() {
String first = "hello";
assertThat(first, stringContainsInOrder("e","l","o"));
}
Затем давайте посмотрим, как проверить, чтоString начинается с заданногоString:
@Test
public void whenVerifyStringStartsWith_thenCorrect() {
String first = "hello";
assertThat(first, startsWith("he"));
assertThat(first, startsWithIgnoringCase("HEL"));
}
И, наконец, мы можем проверить, заканчивается лиString указаннымString:
@Test
public void whenVerifyStringEndsWith_thenCorrect() {
String first = "hello";
assertThat(first, endsWith("lo"));
assertThat(first, endsWithIgnoringCase("LO"));
}
7. Заключение
В этом быстром уроке мы изучили текстовые сопоставители Hamcrest.
Как всегда, полный исходный код примеров можно найти вover on GitHub.