Comment assertThat Chaîne n'est pas vide
Affirme qu'une string
n'est pas vide dans junit peut être effectué de la façon suivante:
assertTrue(!string.isEmpty());
assertFalse(string.isEmpty());
assertThat(string.toCharArray(), is(not(emptyArray())); //(although this didn't compile)
Ma question est: est-il un meilleur moyen de vérifier cela - quelque chose comme:
assertThat(string, is(not(empty()))
?
Il y a une correspondance pour ces opérations de la chaîne:
Une autre alternative:
IsEmptyString
Une autre alternative:
assertThat(string.isEmpty(), is(false))
OriginalL'auteur Armine | 2017-05-20
Vous devez vous connecter pour publier un commentaire.
Dans hamcrest 1.3 vous pouvez à l'aide de Les allumettes#isEmptyString :
Dans hamcrest 2.0, vous pouvez à l'aide de Les allumettes#emptyString :
Mise à JOUR Avis que : "Maven central a certains artefacts extra appelé java-hamcrest et hamcrest-java, avec une version 2.0.0.0. Merci de ne pas les utiliser, car ils sont l'échec de l'effort de reconditionnement les différents pots." source : hamcrest.org/JavaHamcrest/distributables
Ouais, mais le tien est mieux (ou au moins, c'est ce que j'avais réellement l'utiliser, maintenant que je sais qu'il existe).
oui, il peut faire le test de code plus lisible (on peut lire à l'expressivité de test comme un article).
Bonne réponse, mais méfiez-vous que les déclarations retourne true lorsque la Chaîne est nulle.. Selon vos spécifications, vous voudrez peut-être ajouter CoreMatchers.notNullValue() à votre test.
oui, monsieur. mais la question est de vérifier si la Chaîne est vide plutôt que null ou vide. pour qu'il y sont liées les allumettes, e.g:
isEmptyOrNullString()
en 1.3 ouemptyOrNullString()
en 2.0.OriginalL'auteur holi-java
J'utiliserais
assertThat(string, is(not(equalTo(""))))
. Contrairement à d'autres approches qui impliquent vérifier le résultat de la chaîne de.length()
ou.isEmpty()
méthodes, cela va vous montrer que la chaîne de caractères contenu dans le message d'erreur lorsque le test échoue.(Edit: en Fait, non, je ne le ferais pas. J'aimerais utiliser le
emptyString()
ouisEmptyString()
matcher comme expliqué dans holi-java réponse. Upvote, pas celui-ci.)OriginalL'auteur Wyzard
Vous pouvez utiliser JUnit propre
assertNotEquals
affirmation:OriginalL'auteur Stefan Birkner
Envisager d'utiliser Apache StringUtils.isNotEmpty() méthode, qui est un null-coffre-fort à la vérification d'une chaîne vide.
OriginalL'auteur entpnerd
Écrire votre propre TestHelper classe où vous pouvez recueillir des méthodes personnalisées pour les assertions, par exemple
C'est juste un conseil. La plus grande de votre application grossit, il est utile d'avoir personnalisé les affirmations et les méthodes d'assistance qui prennent en charge les tests de votre propre logique d'entreprise. Par exemple, au lieu de tester
assertTrue(password.length>6)
vous pourriez avoir unassertPasswordOk(password)
méthode qui vérifie tous les critères pour un mot de passe valide.OriginalL'auteur Matt
Ce que vous pouvez également utiliser la bibliothèque appelée AssertJ qui offre une plus grande couramment assertions dans votre code. Vérification peut être effectuée avec de l'élégant:
assertThat(myString).isNotEmpty();
OriginalL'auteur Tomasz Bawor
Si vous utilisez déjà communes-lang3 vous pouvez le faire, qui vérifie également pour les nuls et les espaces:
Comme décrit dans leur documentation javadoc:
Que l'OP n'a pas mentionné le "vide" en cas, entpnerd réponse est plus pertinente.
OriginalL'auteur Russ Jackson
Vous pouvez utiliser le Google Goyave Bibliothèque méthode Les chaînes de caractères.isNullOrEmpty
De la JavaDoc
OriginalL'auteur Saikat
Ce que vous voulez dire, c'est la taille de votre chaîne.
OriginalL'auteur Simulant