当您在 Visual Studio(激活 CodeCoverage)中运行测试时,代码会突出显示以显示代码的哪些部分已执行,哪些未执行。
有三种不同类型的突出显示,未触摸区域、触摸区域 和部分触摸区域。以下两段伪代码示例,其中代码将被部分触及。
if (true || false)
if (false && true)
但是,当我运行测试时,我想知道我的代码是否突出显示。蓝色背景表示代码已被完全触摸,而深橙色表示代码已被部分触摸。 (最后一行的高亮是当前行)
这根本没有意义。由于 if 语句由逻辑 AND 运算构成,因此必须完全接触才能输入 true 语句的代码。
我认为这是一个错误,但是,我只是想澄清一下,我没有任何误解。您是否看到可以部分触及 if 语句并且引发 true 语句的任何原因?
最佳答案
我猜这是因为 if 主体从未因为测试变量为真而被跳过。有条件的并且被编译成类似于
if (!test)
goto afterBody; // 1
if (!(dummy != null))
goto afterBody; // 2
// body
afterBody:
// next statement
标有 1 的行永远不会执行,因此您的部分覆盖。
关于.net - 独特的 CodeCoverage 突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192356/