usar ejemplo codigo java unit-testing junit hamcrest

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).