Hamcrest Text Matchers

Hamcrest Text Matcher

1. Überblick

In diesem Tutorial werden wir uns mit Hamcrest Text Matchers befassen.

Wir haben Hamcrest Matchers im Allgemeinen zuvor intesting with Hamcrest besprochen. In diesem Tutorial konzentrieren wir uns nur aufText Matcher.

2. Maven-Konfiguration

Zuerst müssen wir unserenpom.xml die folgende Abhängigkeit hinzufügen:


    org.hamcrest
    java-hamcrest
    2.0.0.0
    test

Die neueste Version vonjava-hamcrest kann von Maven Central heruntergeladen werden.

Jetzt werden wir uns direkt mit Hamcrest Text Matchers befassen.

3. Text Equality Matchers

Wir können natürlich überprüfen, ob zwei Strings gleich sind, indem wir den Standard-MatcherisEqual()verwenden.

Darüber hinaus haben wir zwei Matcher, die fürString-Typen spezifisch sind:equalToIgnoringCase() undequalToIgnoringWhiteSpace().

Überprüfen wir, ob zweiStringsgleich sind - ignorieren Sie den Fall:

@Test
public void whenTwoStringsAreEqual_thenCorrect() {
    String first = "hello";
    String second = "Hello";

    assertThat(first, equalToIgnoringCase(second));
}

Wir können auch überprüfen, ob zweiStringsgleich sind - wobei führende und nachfolgende Leerzeichen ignoriert werden:

@Test
public void whenTwoStringsAreEqualWithWhiteSpace_thenCorrect() {
    String first = "hello";
    String second = "   Hello   ";

    assertThat(first, equalToIgnoringWhiteSpace(second));
}

4. Leere Text-Matcher

Wir können überprüfen, ob einString leer ist, was bedeutet, dass es nur Leerzeichen enthält, indem wir die MatcherblankString() undblankOrNullString() verwenden:

@Test
public void whenStringIsBlank_thenCorrect() {
    String first = "  ";
    String second = null;

    assertThat(first, blankString());
    assertThat(first, blankOrNullString());
    assertThat(second, blankOrNullString());
}

Wenn wir andererseits überprüfen möchten, ob einString leer ist, können wir dieemptyString()-Matcher verwenden:

@Test
public void whenStringIsEmpty_thenCorrect() {
    String first = "";
    String second = null;

    assertThat(first, emptyString());
    assertThat(first, emptyOrNullString());
    assertThat(second, emptyOrNullString());
}

5. Pattern Matchers

Mit der FunktionmatchesPattern()können wir auch überprüfen, ob ein bestimmter Text mit einem regulären Ausdruck übereinstimmt:

@Test
public void whenStringMatchPattern_thenCorrect() {
    String first = "hello";

    assertThat(first, matchesPattern("[a-z]+"));
}

6. Sub-String-Matcher

Mit der FunktioncontainsString() odercontainsStringIgnoringCase(): können wir feststellen, ob ein Text einen anderen Untertext enthält

@Test
public void whenVerifyStringContains_thenCorrect() {
    String first = "hello";

    assertThat(first, containsString("lo"));
    assertThat(first, containsStringIgnoringCase("EL"));
}

Wenn wir erwarten, dass die Teilzeichenfolgen in einer bestimmten Reihenfolge vorliegen, können wir den Matcher vonstringContainsInOrder()aufrufen:

@Test
public void whenVerifyStringContainsInOrder_thenCorrect() {
    String first = "hello";

    assertThat(first, stringContainsInOrder("e","l","o"));
}

Als nächstes sehen wir uns an, wie Sie überprüfen, ob einString mit einem bestimmtenString beginnt:

@Test
public void whenVerifyStringStartsWith_thenCorrect() {
    String first = "hello";

    assertThat(first, startsWith("he"));
    assertThat(first, startsWithIgnoringCase("HEL"));
}

Und schließlich können wir überprüfen, ob einString mit einem bestimmtenString endet:

@Test
public void whenVerifyStringEndsWith_thenCorrect() {
    String first = "hello";

    assertThat(first, endsWith("lo"));
    assertThat(first, endsWithIgnoringCase("LO"));
}

7. Fazit

In diesem kurzen Tutorial haben wir Hamcrest Text Matchers untersucht.

Wie immer finden Sie den vollständigen Quellcode für die Beispiele inover on GitHub.