当您在Visual Studio中运行测试(使用已激活的CodeCoverage)时,代码会突出显示,以显示哪些代码部分已执行,哪些部分未执行。
有三种不同的突出显示,未触摸区域,触摸区域和部分触摸区域。以下两个伪代码显示了部分触摸代码的示例。
if (true || false)
if (false && true)
然而,当我运行测试时,我想知道我的代码突出显示。蓝色背景表示代码已完全触摸,而深橙色表示代码已被部分触摸。 (最后一行的亮点是当前行)
这根本没有意义。由于if语句是由逻辑AND 操作构建的,因此必须完全触及它才能输入true语句的代码。
我认为这是一个错误,但是,我只想清楚我没有任何误解。你是否看到任何理由可以部分触及if语句,虽然提出了真实的陈述?
答案 0 :(得分:2)
我的猜测是因为测试变量为真,所以从未跳过if体。条件和编译为类似于
的东西if (!test)
goto afterBody; // 1
if (!(dummy != null))
goto afterBody; // 2
// body
afterBody:
// next statement
标记为1的行永远不会执行,因此部分覆盖。