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.