java - ejemplo - private jlabel
Cómo afirmar que la cadena no está vacía (9)
Considere el uso del método StringUtils.isNotEmpty() Apache, que es una comprobación segura de nulos para una cadena vacía.
assertTrue(StringUtils.isNotEmpty(str));
La afirmación de que una string
no está vacía en junit se puede hacer de las siguientes maneras:
assertTrue(!string.isEmpty());
assertFalse(string.isEmpty());
assertThat(string.toCharArray(), is(not(emptyArray())); // (although this didn''t compile)
Mi pregunta es : ¿hay una mejor manera de verificar esto? Algo así como:
assertThat(string, is(not(empty()))
?
En hamcrest 1.3 puedes usar Matchers#isEmptyString :
assertThat(string, not(isEmptyString()));
En hamcrest 2.0 puedes usar Matchers#emptyString :
assertThat(string, is(not(emptyString())));
ACTUALIZACIÓN : observe que: "Maven central tiene algunos artefactos adicionales llamados java-hamcrest y hamcrest-java, con una versión 2.0.0.0. Por favor, no los use, ya que son un esfuerzo abortado para volver a empaquetar los diferentes tarros". fuente: hamcrest.org/JavaHamcrest/distributables
Escriba su propia clase de TestHelper donde puede recopilar métodos personalizados para aserciones, por ejemplo
public static void assertEmpty(String input) {...}
Lo que quieres afirmar es el tamaño de tu cadena.
assertThat("String is empty",
string.length(),
greaterThan(0));
Lo que también puede hacer es usar una biblioteca llamada AssertJ que proporciona excelentes aserciones con fluidez en su código. El cheque se puede hacer con elegante:
assertThat(myString).isNotEmpty();
Puede utilizar el método Strings.isNullOrEmpty Biblioteca de Strings.isNullOrEmpty Google.
Desde el JavaDoc
booleano estático público isNullOrEmpty (cadena de cadena @Nullable)
Devuelve verdadero si la cadena dada es nula o es la cadena vacía.
Considere la posibilidad de normalizar sus referencias de cadena con nullToEmpty (java.lang.String). Si lo hace, puede usar String.isEmpty () en lugar de este método, y tampoco necesitará formas especiales seguras de nulos de métodos como String.toUpperCase (java.util.Locale). O, si desea normalizar "en la otra dirección", convirtiendo cadenas vacías a nulas, puede usar emptyToNull (java.lang.String).
Parámetros :
cadena - una referencia de cadena para comprobar
Devoluciones :
true si la cadena es nula o es la cadena vacía
Puede utilizar la propia aserción assertNotEquals
JUnit:
Assert.assertNotEquals( "", string );
Si ya está usando commons-lang3 , puede hacer esto, que también busca null y espacios en blanco:
assertTrue(StringUtils.isNotBlank(string));
Como se describe en sus javadocs:
isNotBlank: comprueba si un CharSequence no está vacío (""), no es nulo y no solo espacios en blanco.
Yo usaría assertThat(string, is(not(equalTo(""))))
. A diferencia de otros enfoques que involucran la verificación del resultado de los .length()
o .isEmpty()
de la cadena, esto le mostrará el contenido de la cadena en el mensaje de error cuando la prueba falla.
( Edición: En realidad, no, no lo haría. emptyString()
el sistema de emptyString()
o isEmptyString()
como se explica en la respuesta de holi-java . Aumente esta, no esta).