个人认为, 一名菜鸟进阶到高级软件工程师需要的基本素质之一就是写单测!
作为一名菜鸟, 我刚开始也是排斥单测! 但是后面感受到了单测带来的效率迅速提升和安全感, 成为了单测的实践者 。
如果不写单测,测试则需要打包部署;测试案例也无法复用;调试还得看日志(当然可以远程debug),崩溃! 写单测的话 ,直接debug,多爽!
我习惯开发和单测同步进行!,写代码效率迅速提升,代码写完, 意味着单测也写完!如果需要跟别人联调,完全可以硬着腰板子!
随着时间的积累, 单测案例也在积累!无论是项目重构或者是代码改动(有些代码可是牵一发而动全身),都不会觉得慌张,安全感爆棚, 因为单测可以保证代码质量!
既然单测那么重要,写代码时,就得考虑可测性!
最简单的一个原则就是,直接面向接口编程, 依赖接口调用,不依赖具体对象!
Java有很多优秀单测框架, 如下:
数据库
MariaDB4j 兼容mysql,支持事务,推荐使用
HTTP
Wiremock 功能强大,依赖少
MockMvc Spring的单测框架,依赖较多
THRIFT
实现THRIFT接口,启动一个本地SERVER,具体代码,后面贴出github
其它单测框架
Mockito 比较优秀的单测框架,支持类和方法的mock,不支持static方法的Mock
PowerMock 功能和Mockito类似, 但是支持static方法的Mock
后续如果发现更优秀的测试框架, 也会持续更新的!
网友评论