2026-10-19 14:49:57
不写单元测试被批评是合理的,因为单元测试在软件开发中具有重要作用,以下从单元测试的定义、重要性、编写方法及不爱写的原因等方面进行详细分析:
单元测试的定义:单元测试是对某个类中的代码进行测试,查看是否正常。它是开发人员针对软件中的最小可测试单元(通常是函数、方法或类)进行的验证测试。
单元测试的重要性
便于调试:当想测试部分代码逻辑是否正常时,直接构造数据进行调试可能比较繁琐且不统一。单元测试可以将这些构造数据的代码统一管理,方便后续的调试和维护。
回归测试:在一个系统中修改了很多代码后,不确定改动是否影响核心逻辑时,单元测试可以在编译时自动跑一遍逻辑做回归测试。无论是重构还是正式提测前,都能提高开发人员写代码的信心,确保代码的稳定性和可靠性。
提高代码质量:单元测试促使开发人员在编码时就注重代码设计,避免将代码写成难以维护和扩展的“一坨屎”。通过编写单元测试,开发人员需要思考如何使代码更易于测试,从而推动代码结构的优化和设计模式的应用。
提升KPI:如果在一个季度内没有明显的开发成果,但系统没有发生过故障,单元测试可以作为一项重要的工作成果在KPI上体现。它展示了开发人员对代码质量的重视和努力,有助于提升个人绩效评估。
单元测试的编写方法
环境搭建:在SpringBoot环境下使用Mockito编写单元测试,只需引入spring-boot-starter-test依赖,它默认内置了Mockito相关的依赖。示例代码如下:




集成测试的编写方法:很多时候可能需要依赖Spring环境跨模块去调试功能是否正常,这时可以使用@SpringTest来修饰测试类,指明需要Spring环境。既然有了Spring环境,@Autowire之类的注解都可以使用。在web模块下启动时,会真的启动应用相关的环境,然后专门跑这个测试方法。

不爱写单元测试的原因
测试与业务代码的关联性:很多开发人员是写完业务代码后再回过头来写单元测试,且是自己Mock出来模拟对象再Stub。整个过程中都认为自己的业务代码是正确的,因此看到单元测试结果为绿色(通过)并不意外。这种情况下,单元测试可能无法真正发现潜在的问题。
时间成本:写单元测试的代码也是代码,需要花费时间。在项目进度紧张的情况下,开发人员可能会优先保证业务代码的完成,而忽略单元测试的编写。
团队氛围:部分开发人员询问了腾讯、滴滴、阿里、字节等公司的朋友,发现他们也不爱写单测,很多时候写单测只是为了通过编译、满足业务覆盖率的要求,能绕开就绕开了。这种团队氛围可能会影响个人对单元测试的积极性和重视程度。