Zeichenfolge nicht leere Testassertionen in Java

Zeichenfolge nicht leer Test Assertions in Java

1. Überblick

In bestimmten Szenarien müssen wir bestätigen, ob ein bestimmtesString leer ist oder nicht. Es gibt viele Möglichkeiten, solche Behauptungen in Java zu erstellen.

Let’s explore some of those test assertion techniques in diesem kurzen Tutorial.

2. Maven-Abhängigkeiten

Wir müssen zuerst ein paar Abhängigkeiten herausgreifen. In einem Maven-Projekt können wir denpom.xml folgende Abhängigkeiten hinzufügen:


    junit
    junit
    4.12

    org.hamcrest
    hamcrest-core
    1.3

    org.apache.commons
    commons-lang3
    3.8

    org.assertj
    assertj-core
    3.11.1

    com.google.guava
    guava
    26.0-jre

3. Verwenden von JUnit

We’ll use the isEmpty method from the String class along with the Assert class from JUnit to verify whether a given String isn’t empty. Da die MethodeisEmpty true zurückgibt, wenn die EingabeString leer ist, können wir sie zusammen mit der MethodeassertFalse verwenden:

assertFalse(text.isEmpty());

Oder wir können auch verwenden:

assertTrue(!text.isEmpty());

Thought since text might be null, ist eine andere Möglichkeit, eine Gleichheitsprüfung mit der MethodeassertNotEquals durchzuführen:

assertNotEquals("", text);

Or:

assertNotSame("", text);

Lesen Sie unseren ausführlichen Leitfaden zu JUnit-Zusicherungenhere.

Alle diese Zusicherungen geben, wenn sie fehlschlagen, einAssertionError. zurück

4. Verwenden von Hamcrest Core

Hamcrest ist ein bekanntes Framework, das Matcher bereitstellt, die üblicherweise für Unit-Tests im Java-Ökosystem verwendet werden.

We can make use of the Hamcrest CoreMatchers class for empty String checking:

assertThat(text, CoreMatchers.not(isEmptyString()));

Die MethodeisEmptyString ist in der KlasseIsEmptyStringverfügbar.

Dies gibt auch einen AssertionError zurück, wenn ein Fehler auftritt, jedoch mit einer hilfreicheren Ausgabe:

java.lang.AssertionError:
Expected: not an empty string
     but: was ""

Falls erforderlich, um zu überprüfen, ob ein String weder leer noch null ist, können wirisEmptyOrNullString verwenden:

assertThat(text, CoreMatchers.not(isEmptyOrNullString()));

Um mehr über andere Methoden der KlasseCoreMatcherszu erfahren, lesen Sie den zuvor veröffentlichten Artikel vonthis.

5. Verwenden von Apache Commons Lang

DieApache Commons Lang-Bibliothek bietet eine Vielzahl von Hilfsprogrammen für diejava.lang-API.

DieStringUtils class offers a method that we can use to check for empty Strings:

assertTrue(StringUtils.isNotBlank(text));

Wenn dies fehlschlägt, wird ein einfachesAssertionError. zurückgegeben

Um mehr über die String-Verarbeitung mit Apache Commons Lang zu erfahren, lesen Sie den Artikel vonthis.

6. Verwenden von AssertJ

AssertJ ist Open Source, eine Community-gesteuerte Bibliothek, die zum Schreiben fließender und umfangreicher Aussagen in Java-Tests verwendet wird.

Die MethodeAbstractCharSequenceAssert.isNotEmpty() überprüft, ob das tatsächlicheCharSequence nicht leer ist, oderin other words, that it is not null and has a length of 1 or more:

Assertions.assertThat(text).isNotEmpty()

Wenn dies fehlschlägt, wird die Ausgabe gedruckt:

java.lang.AssertionError:
Expecting actual not to be empty

Wir haben einen schönen Einführungsartikel zu AssertJhere.

7. Verwendung von Google Guava

Guava ist eine Reihe von Kernbibliotheken, die von Google angeboten werden.

The method isNullOrEmpty from the Guava Strings class can be utilized to verify if a String is empty (oder null):

assertFalse(Strings.isNullOrEmpty(text));

Dies gibt auch einAssertionError zurück, wenn keine andere Ausgabemeldung fehlschlägt.

Um unsere anderen Artikel über die Guava-API zu erkunden, folgen Sie dem Linkhere.

8. Fazit

In diesem kurzen Tutorial haben wir herausgefunden, wie Sie feststellen können, ob ein bestimmtesString leer ist oder nicht.

Wie immer ist das vollständige Code-Snippet inover on GitHub verfügbar.