我在模块上从cover
上运行Devel::Cover
,在使用条件三元运算符的行中获得50%的分支覆盖率,即
return @rgb ? map { hex $_ } @rgb : undef;
这样可以吗?为了获得100%的覆盖率,我必须更改代码以使用if/else
块吗?
我是Devel::Cover
的新手,所以您可以提供的任何见解都会非常有帮助。
谢谢
发布于 2015-07-06 02:54:16
因为您的测试不包括@rgb
为空的情况,所以无法获得三元的假分支的覆盖范围。在这种情况下,map
将永远不会被调用,但它将返回undef
(或者像@ikegami建议的()
)。
三元结构与以下内容相同:
if (@rgb) {
return map { hex $_ } @rgb;
} else {
return undef;
}
因此,在那里有一个分支没有被测试覆盖。
你有几种选择:
@rgb
没有元素,则不确保程序按照您的要求执行# uncoverable branch false
注释,如https://metacpan.org/pod/Devel::Cover#UNCOVERABLE-CRITERIA中所述@rgb
没有元素
是foo('no_rgbs'),undef,‘当没有元素时返回undef’;https://stackoverflow.com/questions/28285468
复制相似问题