IIC3745-2020-2/syllabus

Comportamiento de Branch Coverage en SimpleCov

Closed this issue · 4 comments

Hola!

Haciendo los tests para cumplir con BC, me di cuenta que SimpleCov tiene un comportamiento particular con este criterio. Analizando el grafo de flujo del código, queda claro que se requerían al menos 3 tests para pasar por todas las branches debido al primer if con un if-else dentro (las dos posibilidades dentro del if, y no entrar al primer if). Sin embargo, si uno hace solo dos tests, SimpleCov dice que hay un 100% de coverage. A quién le hacemos caso, a SimpleCov o al análisis teórico del grafo?

Hola @akrebs2

¿Puede ser que estás viendo 100% de coverage en "code coverage" y no en branch coverage? Porque SimpleCov enfatiza el code coverage y en una columna aparte poner el branch coverage.

Saludos y quedo atento a tu respuesta ✌️

mora4 commented

Hola!

Yo tengo la misma duda, logré el 100% de branch coverage con 2 tests, pero siento que faltó el branch que describe @akrebs2 de no entrar al primer if. ¿Será que SimpleCov no considera eso como un branch?

Alguno de los 2 puede mandarme el zip de la carpeta coverage a mi mail please para verlo hfvaldivieso@uc.cl

Saludos ✌️

Hola,

Se revisó el caso, lo que pasa es que el código entregado tiene 3 líneas al final para que recordaran como instanciar y llamar el método de la clase:

book = PDF.new(300, 2, 5, false, true)
puts book.bind_book_price(false) # 8000
puts book.bind_book_price(true) # 4000

Estas 3 líneas están interfiriendo con simpleCov. Deben comentarlas para que la teoría les calce con el resultado de SimpleCov.

Saludos ✌️