昨天下班时遗留的bug,今天上班十几分钟终于解决了。
运行服务器不报错,f12看一下控制台发现数据没有传过来。一脸懵逼,因为下班了也就没弄了。旁边同事提醒我做单元测试。的确,很多时候因为懒都不愿去做这个,但很多的bug隐藏的很深,完全不好靠肉眼解决,这时就需要做单元测试了。
于是煎熬了一夜的我,第二天来到公司就开始写单元测试,从dao层开始,没问题,能正常和数据库交互,接着service,我滴乖乖,报错了


可以看到,虽然数据有两条,但没有存入成功,这样控制层肯定没取到结果,但这个错误控制台竟然没报。。。
看看代码,特么的谁写的,竟然这样写
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了。
由此可见,单元测试的重要性。
本文分享了一次通过单元测试解决遗留bug的经历。下班时遇到的bug未能及时解决,导致第二天运行服务器出现数据未传过来的问题。通过同事的提醒进行单元测试,从DAO层开始逐步排查,最终发现是返回数据的方式存在问题。强调了单元测试在查找和解决隐藏bug中的重要性。

9676

被折叠的 条评论
为什么被折叠?



