Saltar al contenido

¿Cómo deshabilito las aserciones de Java para una prueba junit en el código?

Basta ya de buscar en otros sitios ya que llegaste al espacio necesario, contamos con la respuesta que necesitas y sin complicaciones.

Solución:

Por lo general, usa surefire con maven para pruebas JUnit. agregando -disableassertions o el sinonimo -da como argumento debería funcionar:


    org.apache.maven.plugins
    maven-surefire-plugin
    your_version
    
        -disableassertions
    

Si las pruebas se inician de manera diferente a través del IDE (es decir, fuera de maven), probablemente necesite editar alguna configuración de inicio y pasar el parámetro. Sin embargo, esto depende del IDE.

Dentro de Java (deshabilitando aserciones en único clase)

Para habilitar o deshabilitar la verificación de aserciones dentro de Java, use setClassAssertionStatus en ClassLoader. Por ejemplo:

Foo.class.getClassLoader().setClassAssertionStatus(Foo.class.getName(), false);

Dentro de Maven (deshabilitando aserciones para todo clases)

Desde la versión 2.3.1, Maven Surefire tiene un indicador enableAssertions separado.


  org.apache.maven.plugins
  maven-surefire-plugin
  your_version
  
    false
  

Con JUnit 4 Asume (para solo prueba caso)

Idealmente, sus pruebas deberían pasar sin importar si las aserciones están habilitadas o deshabilitadas. Si una de las pruebas depende de que las aserciones estén deshabilitadas, el mecanismo JUnit previsto es usar un suposición:

import static org.junit.Assume.assumeTrue;

@Test
public foo onlyWithoutAssertions() 
    assumeTrue(assertionsDisabled());
    // your tricky test comes here, and is only executed in 
    // environments with assertion checking disabled.


public static boolean assertionsDisabled() 
    return !Foo.class.desiredAssertionStatus();

Nota: normalmente utilizo esta opción al revés: para comprobar que un assert funciona como se esperaba, en casos raros tengo una prueba que asume que la verificación de aserciones es activado.

Con JUnit 5 Asumir

Los supuestos de JUnit 5 son una extensión de los de JUnit 4. Por lo tanto, para JUnit 5, el único cambio en el código JUnit 4 es la importación, que ahora es de jupiter:

import static org.junit.jupiter.api.Assumptions.assumeTrue;

valoraciones y reseñas

Finalizando este artículo puedes encontrar las interpretaciones de otros creadores, tú asimismo tienes el poder insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *