问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

真不是吹,这款能减少 BUG 的 IDEA 插件你可能没用过!

发布网友 发布时间:2024-10-09 02:16

我来回答

1个回答

热心网友 时间:2024-10-11 12:32

前言

单元测试,一方面是软件开发的基石,另一方面却是令人头疼的负担。尤其当团队面临这项任务时,几乎很难轻松应对。

面对自己编写的代码,编写单元测试或许还能接受。然而,对于绝大多数人来说,接手别人留下的“烂摊子”,编写单元测试就显得格外不情愿。

没错,就是不想写!

为了满足所谓的指标,我们不得不给那些即将发臭的代码注入一股生命力:那就是自动化。假如大部分工作都能交给机器完成,相信很多人都会乐在其中。

squaretest

市面上有许多这样的工具,比如IDEA自带的,但它们只能生成一些表面功夫的东西,无法真正减少我们的工作量。

这时,我们需要更高级的工具。经过测试,squaretest在IDEA插件中脱颖而出。安装并重启IDEA后,你就能使用这个功能。

只需找到最需要改进的代码块,在菜单中找到squaretest工具,生成代码即可。选择语言和模板等操作对于软件开发者来说并不困难,此处不再赘述。

结果令人惊喜,squaretest为我生成了上万行的test代码。无论是交给QA团队查看,还是交给分析工具进行分析,都能让人眼前一亮。

hehehehehehe....漂亮!虽然仍需微调参数,但大部分代码已经生成,大大节省了我们的力气。

其他工具

这个赛道似乎并不受欢迎。许多工具都缺乏维护,或者实用性不高。JUnitGenerator2.0不支持JUnit5;AgitarOne只有30天试用期;Randoop的设计并不适合人类使用;Analytix被谷歌收购后,几乎销声匿迹。squaretest可以说是非常实用。

你需要单元测试吗?

很多人没有选择,因为这是硬性指标。如果工作流程存在问题,单元测试反而会成为累赘。在大多数情况下,单元测试并不能减少bug,而是根据bug进行调整,以适应正常代码。此外,如果你的代码都是一些简单的CRUD,编写单元测试也看不到任何益处。要解决这个问题,我们需要从根源上找原因。中国式需求变化快,临时需求多,要求快速交付。这些功能往往复杂性较低,编写的代码并不会产生过多的bug。由于变化快,编写的单元测试也没有通用性。一次性的代码,写完之后可能永远不再修改,被扔在一个遗忘的角落。要编写单元测试,你需要确保多年后还能使用。而不是等到项目尾声,为了达到指标而集中补充单元测试。单元测试要想发挥其价值,需要在一开始就创建相关的代码,许多团队都做不到这一点。做不到,就不要假装。

单元测试并不简单

即使环境达到要求,所有的接口都提前设计,且保持较少的变动,我们依然无法推行单元测试。单元测试从来不是因为编写单元测试有多困难,而是大多数代码都无法写出好的单元测试。在TDD(测试驱动开发)模式下,测试的动作比开发早,属于预先设计接口定义的范畴。如果你在后期对接口进行了较多的变更,这种方式同样会让开发人员感到痛苦。单元测试需要配合极限编程,经常对代码进行重构。这是设计腐化之后的一种补救式措施。但很多情况下,大家都害怕、拒绝修改旧代码。工期和稳定性是常见的借口,这些借口看起来比扩展性和可测试性更正常一些,也更能说服高层进行决策。没有几个技术决策者能够在销售、产品、老板的重重压力下保持初心,做这种长远性的规划。所以说单元测试肯定是有用的,但却缺乏实施的土壤。按时上线、提前上线、bug数量,这些常见的指标,只反映了结果,那些去改进这些结果的措施,短期效应不是很明显的话,很容易就胎死腹中。单元测试还阻碍开发人员重构的动力。因为重构意味着要动很多的测试代码,往往很多人偷偷一评估,就放弃了。

坚持对的事情

选择一个优秀的团队至关重要。大家都很专业,不会亏待你所信仰的正确。专业的人才在二流子团队中,会像一个小丑一样无助,大多数习以为常的经验,几乎无法实施。让人欣慰的是,追求原则的团队还是有的,正确的方式可以避免很多曲折的路线,抛掉技术债所造成的负面影响。能够加入这些团队,是非常幸福的事情。作为程序员,应该时刻保持这种好的习惯,不要因为赶工,忽略了代码的重构和测试。这些是一个专业技术人员应有的素质,而不是寄希望于公司的大环境中。这些好的习惯,就像人的气质一样让人着迷,最终会让你超脱于其他人而受益。作为技术管理者,你要正确评估自己的公司环境,是不是具有单元测试的生长土壤。即使你明白单元测试是有益的,你也不得不做一些取舍。尤其是你判断项目只不过是你的垫脚石,3年之后肯定不会在自己的手里,你更会任由它自我腐烂掉。如此情况,大家都心知肚明,没人会对你说三道四。作为非技术管理人员,当有人为你提出类似这种耗费工期的、长远有益的建议,不要着急否定。看一看其他优秀的企业,是不是也曾因这些短暂的原地踏步而受益过。无知并不可怕,可怕的是不相信专业。如果你肯定了,给予支持,而不要半途而废。有意思的是,半途而废最终并不会废止,它同样会蜕变为形式主义,将一件美好的事情硬生生变成指标。

End

单元测试代码是无聊的、枯燥的,尤其是为别人写的代码补充单元测试。通常情况下,如果不发生bug,没有人会闲的蛋疼去动那一堆堆的“烂摊子”,除非是不自量力的小牛犊。这个时候,一个得心应手的工具,自动帮你完成这些“烂摊子”,让你的单元测试代码拥有和“烂摊子”一样的生命周期,不得不说是一件快事。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 布试干囷病太难受了、有什么可药缓解一下? goldwave我把加速后的歌曲保存好,然后去听,但是,是没加速的,那位高手可 ... 怎么用GoldWave把歌曲加速,然后在存下来 新华保险一般投保后多长时间签合同我已投保 银行卡上的钱被划走了,已 ... 济南大学西校区附近有什么同志会所吗? 济南南郊宾馆在济南大学西校区哪里 济南大学西校区附近的宾馆? 济南大学西校区古董店 请问济南大学西校区附近有哪些性价比比较高的旅馆?有洗刷间和空调的双人... 济南大学西校区周围有什么好的化妆品店吗 租书店有吗 具体在什么位置... 搬到济南大学西校区附近住了,新住所不能洗澡,附近哪有洗澡的地方?_百 ... 艺术生有被云南艺术学院录取不想去的吗 中国十大空压机品牌是什么? 空压机的用途是什么(空压机作用是什么) 都八月十六号了,我还没有收到云南艺术学院通知书,网上查询录取了... 晒太阳,人的皮肤为何会变黑?要多久才会变回来? 注册消防工程师备考要怎么学习? 《保卫萝卜2》攻略 第68关满星通关攻略[图]-手游攻略-游戏鸟手游网_百 ... 保卫萝卜2道具属性解析 急救包有什么用 《小妇人》撤档择日再映 获奥斯卡最佳服装设计奖 请问谁知道QQ空间里致命诱惑这个皮肤和它配套的动画叫什么?. 后背脊柱痛是怎么回事 后背脊柱疼痛怎么回事 商务英语必备口语软件简介 常怀利毕业院校及成就 求推荐一本商务英语(口语)的书~~附带碟子的那种~~~ 房建国教授 疾控肝病诊疗中心医院怎么样 晋中最好的肝病医院是哪家?在公司体检出来是乙肝,我觉得有点不靠谱,想... 有抗体还会感染乙肝大三阳吗 电热水器开冷水有响声正常吗? 初中数学几何公式定理公式146条大汇总! 武汉交通卡办理地址 武汉交通方式 榴莲好吃怎么发朋友圈 AI连接数位板后为什么很卡? 泽连斯基,娶校花、全裸出镜,从演总统到当总统,只用了4年…… 中医提醒决明茶有助早期白内障恢复 白内障的中医治疗方法 代谢性白内障中医治疗方法 有一款产品是冻干粉和溶媒搭配使用的,应该怎么备案呢?