单行if语句的代码覆盖率

时间:2014-08-12 14:41:50

标签: php phpunit

我是PHP新手并使用PHPunit。有了这个,我正在研究一个项目,并试图为我的单元测试保持100%的代码覆盖率。我发现PHPunit会创建一个单行"如果"即使单元测试从未在该行上评估为TRUE,也会涵盖声明。有没有办法让PHPunit代码覆盖识别出来?

示例 - 即使异常永远不会被抛出,以下行也会显示为覆盖:

if (false) throw new \Exception('This never gets thrown.');

示例 - 如果我像这样编写代码,代码覆盖率显示准确(但我不想像这样编写代码):

if (false) {
  throw new \Exception('This never gets thrown.');
}

有没有办法将我的代码保存为单行IF语句,并且在IF语句的右侧从未执行时显示PHPunit?

1 个答案:

答案 0 :(得分:0)

之前有过这方面的讨论,但它主要归结为通过PHP解释器,XDebug和其他工具解析PHP代码。如果没有大括号,这些工具不会将代码视为不同的行,因此它们不会被标记为正确覆盖代码。使用大括号是此时纠正结果的唯一方法。