微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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%的代码覆盖率.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
服务器优化必备:深入了解PHP8底层开发原理
Golang的网络编程:如何快速构建高性能的网络应用?
Golang和其他编程语言的对比:为什么它的开发效率更高?
PHP8底层开发原理揭秘:如何利用新特性创建出色的Web应用