我正在开发一个学习体验的个人项目,同时也要实现一个体面的代码.这种教育的一部分,并使其成为一个体面的代码,是单元测试.我最近潜入了
PHPUnit及其代码覆盖工具.
我遇到了一种具有特定实现的情况,其中使用的编码标准导致代码覆盖丢失.在这个特定的例子中,打破使用的编码标准会导致代码覆盖率从88%跳到94%.
在一个方法中,我有两行,如下所示
// .. some data validation stuff trigger_error('Error validating the stuff',E_USER_WARNING); }
数据验证和东西在这里并不重要,}是.现在,当单元测试超过这行代码时,在}之前的行上会抛出PHPUnit_Framework_Error,因为代码从未实际继续到大括号的末尾,代码覆盖率永远不会捕获该行.
如果我做
// .. some data validation stuff trigger_error('Error validating the stuff',E_USER_WARNING);}
我的代码覆盖率增加了6%.我已经尝试将PHPUnit_Framework_Error_Warning :: $enabled设置为false,但后来我的终端中出现了一条丑陋的,预期的错误消息,因为我希望这个项目最终被我自己以外的人使用,单元测试中的错误消息是不可接受的.另外,我真的希望我的编码风格能够始终如一地实现.代码风格的违规可能会在代码的进一步删除时跳出来,这意味着我还必须添加一个可怕的注释来解释为什么大括号被移动……可能在多个地方.
我猜我的问题是:
>是否有一个允许使用1TBS的PHPUnit设置,并且仍会被测试抛出异常或触发错误,直接在}之前?
>遵循编码标准或提高代码覆盖率是否更为重要? (虽然提升真的只是翻译额外的}}}