1. Обзор
В этом руководстве мы рассмотрим текстовые сопоставления Hamcrest.
Мы обсуждали Hamcrest Matchers в целом перед тестированием Hamcrest , в этом уроке мы сосредоточимся только на Text
Matchers.
2. Конфигурация Maven
Во-первых, нам нужно добавить следующую зависимость в наш pom.xml
:
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
Последнюю версию java-hamcrest
можно загрузить с Maven Central.
Теперь мы погрузимся прямо в Hamcrest Text Matchers.
3. Сопоставители равенства текста
Мы можем, конечно, проверить, равны ли две строки, используя стандартный сопоставитель isEqual()
.
Кроме того, у нас есть два сопоставителя, специфичные для типов String
: equalToIgnoringCase()
и equalToIgnoringWhiteSpace().
Давайте проверим , равны ли две строки — игнорируя регистр:
@Test
public void whenTwoStringsAreEqual_thenCorrect() {
String first = "hello";
String second = "Hello";
assertThat(first, equalToIgnoringCase(second));
}
Мы также можем проверить , равны ли две строки , игнорируя начальные и конечные пробелы:
@Test
public void whenTwoStringsAreEqualWithWhiteSpace_thenCorrect() {
String first = "hello";
String second = " Hello ";
assertThat(first, equalToIgnoringWhiteSpace(second));
}
4. Пустые текстовые сопоставления
Мы можем проверить, является ли строка
пустой, то есть она содержит только пробелы, используя сопоставители BlankString()
и BlankOrNullString()
:
@Test
public void whenStringIsBlank_thenCorrect() {
String first = " ";
String second = null;
assertThat(first, blankString());
assertThat(first, blankOrNullString());
assertThat(second, blankOrNullString());
}
С другой стороны, если мы хотим проверить, пуста ли строка
, мы можем использовать сопоставители emptyString()
:
@Test
public void whenStringIsEmpty_thenCorrect() {
String first = "";
String second = null;
assertThat(first, emptyString());
assertThat(first, emptyOrNullString());
assertThat(second, emptyOrNullString());
}
5. Сопоставители шаблонов
Мы также можем проверить, соответствует ли данный текст регулярному выражению, используя функциюmatchPattern()
:
@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"));
}
И, наконец, мы можем проверить, заканчивается ли строка указанной
строкой
:
@Test
public void whenVerifyStringEndsWith_thenCorrect() {
String first = "hello";
assertThat(first, endsWith("lo"));
assertThat(first, endsWithIgnoringCase("LO"));
}
7. Заключение
В этом кратком руководстве мы изучили текстовые сопоставления Hamcrest.
Как всегда, полный исходный код примеров можно найти на GitHub .