Комментарии 6
Спасибо за статью. Вопрос: в отчете покрытия не учтено проверку условия в методе walk_permitted, хотя чтобы добраться до выбора, нужно ведь отработать if. Это особенность работы или баг?
Думаю, что в этом случае Coverage «склеивает» 23-ю и 24-ю строки, т.к. 23-я не была закончена. Вот эквивалентный вариант:
Считаю это более-менее корректным поведением.
Считаю это более-менее корректным поведением.
Кстати да, так перенос строки не влияет на конечный показатель. Хотя визуально все же немножко запутывает.
С другой стороны, если представить вариант подсветки этой строчки, возникнет вполне резонный вопрос «строчек 17, зелёных 16, красная одна, почему же в отчёте числа меньше, и куда вы подевали строку, я подсчитал вручную, вы врете, везде обман, уйду от вас». Согласен, что текущий вариант наименее конфликтен.
Одна из сильных сторон руби как раз однострочники, и я не знаю ни одного способа заставить разрабов раздувать LOC, при этом еще и ухудшая как покрытие так и читаемость. Плюс это отличный способ обмануть CI и закомитить покрытие только одной ветки.
С покрытием как таковым вообще все сложно, даже в плане теории, а с такой проблемной реализацией, все становится еще сложнее.
С покрытием как таковым вообще все сложно, даже в плане теории, а с такой проблемной реализацией, все становится еще сложнее.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Анализ покрытия кода тестами в Ruby