Assertions de test de chaîne non vides en Java

Assertions de test String non vides en Java

1. Vue d'ensemble

Dans certains scénarios, nous devons affirmer si unString donné est vide ou non. Il y a pas mal de façons de faire de telles affirmations en Java.

Let’s explore some of those test assertion techniques dans ce tutoriel rapide.

2. Dépendances Maven

Nous devons d'abord saisir quelques dépendances. Dans un projet Maven, nous pouvons ajouter les dépendances suivantes auxpom.xml:


    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. Utilisation de 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. Puisque la méthodeisEmpty renvoie true si l'entréeString est vide, nous pouvons l'utiliser avec la méthodeassertFalse:

assertFalse(text.isEmpty());

Ou, nous pouvons également utiliser:

assertTrue(!text.isEmpty());

Thought since text might be null, une autre façon est de faire un contrôle d'égalité en utilisant la méthodeassertNotEquals:

assertNotEquals("", text);

Or:

assertNotSame("", text);

Consultez notre guide détaillé sur les assertions JUnithere.

Toutes ces assertions, en cas d'échec, renverront unAssertionError.

4. Utilisation de Hamcrest Core

Hamcrest est un framework bien connu fournissant des correspondants couramment utilisés pour les tests unitaires dans l'écosystème Java.

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

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

La méthodeisEmptyString est disponible dans la classeIsEmptyString.

Cela renvoie également une erreur AssertionError en cas d'échec, mais avec une sortie plus utile:

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

Si nécessaire, pour vérifier qu'une chaîne n'est ni vide ni nulle, nous pouvons utiliser lesisEmptyOrNullString:

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

Pour en savoir plus sur les autres méthodes de la classeCoreMatchers, lisez l'article dethis précédemment publié.

5. Utilisation d'Apache Commons Lang

La bibliothèqueApache Commons Lang fournit une multitude d'utilitaires d'assistance pour l'APIjava.lang.

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

assertTrue(StringUtils.isNotBlank(text));

En cas d'échec, cela renvoie un simpleAssertionError.

Pour en savoir plus sur le traitement des chaînes avec Apache Commons Lang, lisez l'article dethis.

6. Utiliser AssertJ

AssertJ est une bibliothèque open source, une bibliothèque communautaire utilisée pour écrire des assertions fluides et riches dans les tests Java.

La méthodeAbstractCharSequenceAssert.isNotEmpty() vérifie que leCharSequence réel n'est pas vide, ou,in other words, that it is not null and has a length of 1 or more:

Assertions.assertThat(text).isNotEmpty()

En cas d'échec, cela affiche le résultat:

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

Nous avons un bel article d'introduction sur AssertJhere.

7. Utiliser Google Guava

Guava est un ensemble de bibliothèques principales proposées par Google.

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

assertFalse(Strings.isNullOrEmpty(text));

Cela renvoie également unAssertionError en cas d'échec sans autre message de sortie.

Pour explorer nos autres articles sur l'API Guava, suivez le lienhere.

8. Conclusion

Dans ce rapide tutoriel, nous avons découvert comment affirmer si unString donné est vide ou non.

Comme toujours, l'extrait de code complet est disponible enover on GitHub.