php – 当项目编码标准与单元测试代码覆盖率冲突时该怎么办?

前端之家收集整理的这篇文章主要介绍了php – 当项目编码标准与单元测试代码覆盖率冲突时该怎么办?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个学习体验的个人项目,同时也要实现一个体面的代码.这种教育的一部分,并使其成为一个体面的代码,是单元测试.我最近潜入了 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设置,并且仍会被测试抛出异常或触发错误,直接在}之前?
>遵循编码标准或提高代码覆盖率是否更为重要? (虽然提升真的只是翻译额外的}}}

不要沉迷于一个数字.您知道报告的数字是错误的,并且您的报道覆盖范围比报告的要多,为什么要担心呢?更重要的是,您的测试涵盖所有有意义的代码,而不是您实现100%的代码覆盖率.

如果您认为编码标准很重要,而且看起来很符合,那么不要牺牲数字的可读性.

猜你在找的PHP相关文章