Java >> Java tutorial >  >> Tag >> assert

String Not Empty Test Assertions i Java

1. Oversigt

I visse scenarier skal vi hævde, om en given streng er tom eller ej. Der er en del måder at gøre sådanne påstande på i Java.

Lad os udforske nogle af disse testpåstandsteknikker i denne hurtige selvstudie.

2. Maven Dependencies

Vi skal have fat i et par afhængigheder først. I et Maven-projekt kan vi tilføje følgende afhængigheder til pom.xml :

JUnit:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

Hamcrest Core:

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.3</version>
</dependency>

Apache Commons Lang:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

AssertJ:

<dependency>
    <groupId>org.assertj</groupId>
    <artifactId>assertj-core</artifactId>
    <version>3.11.1</version>
</dependency>

Google Guava:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

3. Brug af JUnit

Vi bruger isEmpty metode fra strengen klasse sammen med Bekræftelse klasse fra JUnit for at bekræfte, om en given streng er ikke tom. Siden isEmpty metoden returnerer sand, hvis inputtet String er tom, kan vi bruge det sammen med assertFalse metode:

assertFalse(text.isEmpty());

Eller vi kan også bruge:

assertTrue(!text.isEmpty());

Tænker siden tekst kan være nul, en anden måde er at udføre en lighedskontrol ved at bruge assertNotEquals metode:

assertNotEquals("", text);

Eller:

assertNotSame("", text);

Se vores dybdegående guide om JUnit-påstande her.

Alle disse påstande vil, når de mislykkes, returnere en AssertionError.

4. Brug af Hamcrest Core

Hamcrest er en velkendt ramme, der leverer matchere, der almindeligvis bruges til enhedstest i Java-økosystemet.

Vi kan gøre brug af Hamcrest CoreMatchers  klasse til tom strengkontrol :

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

isEmptyString metode er tilgængelig i IsEmptyString klasse.

Dette returnerer også en AssertionError, når den fejler, men med et mere nyttigt output:

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

Hvis det er nødvendigt, kan vi bruge isEmptyOrNullString for at bekræfte, at en streng hverken er tom eller null. :

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

For at lære om andre metoder til CoreMatchers klasse læs denne tidligere publicerede artikel.

5. Brug af Apache Commons Lang

Apache Commons Lang-biblioteket tilbyder et væld af hjælpeværktøjer til java.lang API.

StringUtils klasse tilbyder en metode, som vi kan bruge til at tjekke for tomme strenge :

assertTrue(StringUtils.isNotBlank(text));

Når det fejler, returnerer dette en simpel AssertionError.

Læs denne artikel for at få mere at vide om strengbehandling med Apache Commons Lang.

6. Brug af AssertJ

AssertJ er en open source, et fællesskabsdrevet bibliotek, der bruges til at skrive flydende og fyldige påstande i Java-tests.

Metoden AbstractCharSequenceAssert.isNotEmpty() bekræfter, at den faktiske CharSequence ikke er tom, ellermed andre ord at den ikke er nul og har en længde på 1 eller mere :

Assertions.assertThat(text).isNotEmpty()

Hvis det mislykkes, udskrives outputtet:

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

Vi har en fin indledende artikel om AssertJ her.

7. Brug af Google Guava

Guava er et sæt kernebiblioteker, der tilbydes af Google.

Metoden erNullOrEmpty fra Guava Strings klasse kan bruges til at kontrollere, om en streng er tom (eller null):

assertFalse(Strings.isNullOrEmpty(text));

Dette returnerer også en AssertionError når den fejler uden anden output-meddelelse.

For at udforske vores andre artikler om Guava API skal du følge linket her.

8. Konklusion

I denne hurtige tutorial fandt vi ud af, hvordan man hævder, om en given streng er tom eller ej.

Som altid er det fulde kodestykke tilgængeligt på GitHub.


Java tag