【发布时间】:2014-08-12 14:41:50
【问题描述】:
我是 PHP 新手并使用 PHPunit。有了这个,我正在做一个项目,并试图为我的单元测试保持 100% 的代码覆盖率。我发现即使单元测试从未在该行上评估 TRUE,PHPunit 也会生成单行“if”语句。有没有办法让 PHPunit 代码覆盖率来识别这一点?
示例 - 即使从未抛出异常,以下行也会显示为已覆盖:
if (false) throw new \Exception('This never gets thrown.');
示例 - 如果我这样编写代码,代码覆盖率显示准确(但我不喜欢这样编写代码):
if (false) {
throw new \Exception('This never gets thrown.');
}
有没有办法将我的代码保留为单行 IF 语句,并在 IF 语句的右侧从不执行时显示 PHPunit?
【问题讨论】:
-
您在这里犯了两个错误:- 1 使用单行 if 语句。 2 坚持100%的代码覆盖率。第一个是不好的做法,第二个是傻瓜的黄金。
-
我怀疑没有办法做到这一点。因为 if 位于一行 is 执行的单行上。无括号的 if 语句也让我感到紧张。恕我直言,它们更难阅读,而且这条线的作用是不直观的:
if(false) echo "Hello ";echo "World!";. -
感谢您的意见。