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%的代码覆盖率.
如果您认为编码标准很重要,而且看起来很符合,那么不要牺牲数字的可读性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |