Перейти к основному содержимому

Анализаторы текста Hamcrest

· 3 мин. чтения

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 .