Pruebas de escritura para todas las ramas perdidas | Autor: Nikit Bhandari | Octubre de 2021
La cobertura de sucursales a menudo se pasa por alto al escribir pruebas, pero si comprende todas las rutas que puede tomar el código, lo ayudará a comprender todos los casos extremos. En esta publicación de blog, aprenderá a identificar las ramas que faltan y a escribir mejores pruebas para su código.
Empecemos por lo básico.
¿Qué es la cobertura de sucursales?
La cobertura de sucursales es un indicador que indica si se han probado todas las sucursales de la base de código. «Rama» es una de las posibles rutas de ejecución que el código puede tomar después de la declaración de decisión, por ejemplo, si Se evalúa la declaración.
Fuente: https://linearb.io/blog/what-is-branch-coverage/
Comencemos con un ejemplo simple, tenemos un if
Estado de salud
Si decidimos escribir la siguiente prueba para nuestro método
Este método tendrá una cobertura de código del 100% porque todas las líneas de este método se ejecutan cuando se ejecuta la prueba, pero falta una rama y no hemos agregado la prueba. condition
sí false
Si agrega otra prueba similar a la siguiente, podrá cubrir todas las ramas.
Ahora las cosas se ponen más interesantes cuando if
Las condiciones se vuelven un poco complicadas
Podría pensar que si agrega dos pruebas como las siguientes, se cubrirán todas las ramas
Pero si lees la imagen de portada de este blog, notarás que en realidad hay 4 sucursales.
true && true
true && false
false && true
false && false
Puede escribir las siguientes pruebas para que su código logre una cobertura de sucursales del 100%
Ahora veamos otro ejemplo
En este ejemplo, usamos el operador de llamada segura (?.
).Si escribimos una prueba para comprobar name
, Echaremos de menos la rama que puede ser null
Entonces, siempre que usemos el operador de llamada segura, debemos recordar que crea dos ramas, y ambas deben probarse.Ahora que lo sabemos, nuestro caso de prueba se verá así
Incluso si sus pruebas han cubierto todas las ramas, siempre puede agregar más pruebas para su propia comprensión. En esta publicación de blog, solo destaqué las ramas que faltan, pero puedes escribir más pruebas. Espero que ahora tenga una mejor comprensión de todas las rutas / ramas en las que se puede ejecutar su código, y tendrá en cuenta estos casos extremos al escribir pruebas unitarias.
Si tiene algún comentario, no dude en enviarme un tweet / mensaje Gorjeo.