Teniendo en cuenta el siguiente código:

    function test(val){
        flag = val;        

        if (!flag) {
            doThis();
        }     
        createSomething();
   }

Entonces, considerando la cobertura de la prueba unitaria, incluso la declaración de función está cubierta, las ramas no están cubiertas ya que el bloque else no existe. Entonces, las ramas cubiertas serán del 50% y, debido a problemas con el sonar, no podremos fusionar esto para desarrollar. Entonces, para deshacernos de este código inútil, escribimos como return false; en el bloque else y hacemos que el script crezca.

¿Es una forma eficiente de escribir el código? ¿Hay alguna manera de evitar escribir códigos inútiles e innecesarios solo para asegurarse de que la cobertura sea del 100%? Esta es una mala práctica, necesita sugerencias para deshacerse de esto. ¿Tenemos alguna configuración, de modo que podamos actualizar las declaraciones de bloque ignorar else y aumentar la cobertura si no está definida?

La sonda fuerza a escribir el bloque else:

enter image description here

Tengo una cobertura de código del 100%, pero la cobertura de la sucursal es del 50% solo por ignorar el bloque else. Hay reglas de sonda definidas si no más del 80%, no podríamos fusionar el código :(

1
Mithun Shreevatsa 3 dic. 2016 a las 17:26
2
¿Por qué necesitaría agregar un bloque else para mejorar la cobertura? Simplemente pruebe su función con un val de verdad y con un val falso, y todo estará cubierto.
 – 
JB Nizet
3 dic. 2016 a las 17:29
1
No podemos ver sus pruebas, pero si tiene una que verifica doThis se llama para !flag y una que verifica que no es para flag, entonces debería ver la cobertura completa.
 – 
jonrsharpe
3 dic. 2016 a las 17:38

1 respuesta

La mejor respuesta

No necesita código adicional, solo debe asegurarse de llamar a test(true) y test(false) y la prueba debe mostrar una cobertura de sucursales del 100% para esa función.

5
Juan Mendes 3 dic. 2016 a las 17:32