Hamcrest Text Matchers

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.