Saltar al contenido

¿Problema de SonarQube “Agregar al menos una aserción a este caso de prueba” para prueba unitaria con aserciones?

Contamos con la respuesta a este dilema, o por lo menos eso pensamos. Si sigues con inquietudes puedes dejar un comentario y con gusto te ayudaremos

Solución:

La regla S2699 (Las pruebas deben incluir afirmaciones) de la Analizador de Java SonarQube no realiza análisis de procedimientos cruzados y solo explora el cuerpo de métodos que se identifican como método de prueba (generalmente anotados con @Test).

En consecuencia, si las únicas afirmaciones que se llamarán al ejecutar el método de prueba se realizan mediante un método dedicado (para evitar la duplicación), la regla generará un problema. Esta es una limitación conocida de la regla y la abordaremos solo cuando podamos realizar un análisis de procedimientos cruzados de manera eficiente.

En cuanto a las cuestiones planteadas por SonarQube en tales casos, puede marcarlas con seguridad como Won't Fix.

En cuanto a las aserciones detectadas, la regla considera como aserciones las habituales assert/fail/verify/expect métodos de los siguientes marcos (prueba unitaria):

  • JUnit
  • Festival (1.x y 2.x)
  • AfirmarJ
  • Hamcrest
  • Mockito
  • Primavera
  • EasyMock

Si no espera que se produzca ninguna excepción en su prueba, esta puede ser una solución alternativa:

@Test(expected = Test.None.class /* no exception expected */)

Alternativamente, puede suprimir la advertencia para el método de prueba/clase de prueba:

@SuppressWarning("squid:S2699")

Comentarios y valoraciones

Te invitamos a secundar nuestra misión fijando un comentario y dejando una valoración te estamos agradecidos.

¡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 *