关于mockito的初步学习和总结

传送门:

mockito的入门与使用https://blog.csdn.net/qq_36804701/article/details/80475540


我们的主管长期以来一直强调要做单元测试,我从前期的不愿不解到,从网上的各种信息稍微理解并认识到了单元测试的必要性和重要性,似乎是大公司规范的地方之一。根据我的理解,测试就是大型产品完善的必要环节,大公司要花费好几个月时间进行大量的全方位的测试。所以虽然单元测试看似要花费额外的时间写不必要的代码,但是我应该要正视并努力地理解。实际上测试已经给我带来了好处,他让我能够局部地测试写好的代码能否运行而不必重启整个项目,提高了效率,而花费时间写好单元测试以后(实际上还是很不规范的,只是按照自己的理解写的),我能够全局地测试代码中的问题,并且在改动代码以后能够快速测试其对前后业务流程的影响,迅速找出问题。前期花费大量时间搭建框架,使工作自动地进行,从而在后期更加省力和有效率地工作,这是我对程序员的理解,也符合我intp的天性,只不过我依然没有更深地体会到单元测试的好处,因为实际上我还没有深入地实践(也就是写的代码还不够多)。现在主管让我们使用mockito来写单元测试,并且推荐了我们汪文君的视频,除了他的视频外我还会在网上找些额外的资料,下面是对这些内容的分析和总结。

我初步的理解是,代码运行是需要环境的,但是测试代码很多时候并不能满足这种条件,比如第三方的接口或者是数据库,或者是那段代码根本还没有写,(我之前一直不知道怎么测试spring-mvc的代码,因为涉及到注入,每次都要重启项目,直到我发现mockmvc,还有其他的mock工具),因此mock,中文意思是模拟,就应运而生了,他可以模拟代码中方法类的行为,例如使用Mockito.when(testDao.test("aaa")).thenReturn("aaa")来模拟testDao方法输入"aaa"参数时返回"aaa",然后注入到控制层controller或者业务层service中,代码运行到那一段就会执行mock制定的行为,这是相当有用的。虽然没有看过源代码,但是我想原理跟动态代理很像,动态代理之前我看过博客的原理分析,实际上是动态生成了继承被代理类的实现类,并且用反射来调用被代理类的方法和动态代理中的切面方法。初步猜测mockito应该与之类似。不过通过汪文君的视频我了解到mock不能模拟最终finial,私有private,静态static,匿名anonymous,原始primivite方法。其中不能模拟私有方法和静态我认为还是挺致命的缺陷,不过视频中也提到powarmock可以实现,所以一般和mockito配合使用。这是初步的认识。

后面我会具体介绍使用mockito的过程。

完。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值