不做单元测试的程序员都在耍流氓

本文分享了一次通过单元测试解决遗留bug的经历。下班时遇到的bug未能及时解决,导致第二天运行服务器出现数据未传过来的问题。通过同事的提醒进行单元测试,从DAO层开始逐步排查,最终发现是返回数据的方式存在问题。强调了单元测试在查找和解决隐藏bug中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天下班时遗留的bug,今天上班十几分钟终于解决了。

运行服务器不报错,f12看一下控制台发现数据没有传过来。一脸懵逼,因为下班了也就没弄了。旁边同事提醒我做单元测试。的确,很多时候因为懒都不愿去做这个,但很多的bug隐藏的很深,完全不好靠肉眼解决,这时就需要做单元测试了。

于是煎熬了一夜的我,第二天来到公司就开始写单元测试,从dao层开始,没问题,能正常和数据库交互,接着service,我滴乖乖,报错了
1.png

2.png

可以看到,虽然数据有两条,但没有存入成功,这样控制层肯定没取到结果,但这个错误控制台竟然没报。。。

看看代码,特么的谁写的,竟然这样写

        ResultData<List<Object>> result = new ResultData<>();
        // 获取用户列表
        List<User> users = userDao.getUser(userId, username);
        // 从第一页开始,每页10条数据
        PageHelper.startPage(pageNo, 10);
        PageInfo<User> page = new PageInfo<>(users);
        // 必须先set,不然报空指针异常
        // result.setData(new ArrayList<Object>());
        result.getData().add(users);
        result.getData().add(page);

把注释掉的这行加上就ok了。

由此可见,单元测试的重要性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值