单元测试神器

最近在给遗留代码写单元测试,有点披荆斩棘的感觉,目前发现被测代码有很多让人“惊喜”的地方,最大的特点就是一言不合就要访问数据库,比如:

构造函数里面要访问数据库
Set方法里面要访问数据库
常量定义也要访问数据库
静态方法里也要访问数据库

导致的问题是如果我只想静静地测试业务逻辑层的代码必须要依赖数据库。测试一旦访问数据库,最大的问题就是慢,你可能要等上几十秒才能收到反馈,这是不能接受的(不解释)。

还好有单元测试神器PowerMockito,它结合了Mockito的简洁优雅和PowerMock的灵活强大,专治各种不服,一起来感受一下:

  1. 最基本的,创建一个mock对象:

OrderDao mock = mock(OrderDao.class);

  1. Mock对象的方法

when(mock.findById(1)).thenReturn(whatuwant);

  1. Mock构造函数

whenNew(Order.class). withNoArguments().thenReturn(mock);

  1. Mock静态方法

mockStatic(Order.summary()). thenReturn(10000);

感觉有了PowerMockito,我再也不怕“惊喜”了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单元测试的必要性 完整,规范的单元测试有利于提升程序的“自动化”验证 降低后期程序的维护成本 高覆盖率的单元测试在...
    大大大大大先生阅读 885评论 0 2
  • 本文介绍了Android单元测试入门所需了解的内容,包括JUnit、Mockito和PowerMock的使用,怎样...
    于卫国阅读 4,722评论 0 5
  • PowerMockito简介(以上都是自我琢磨,错误之处请批评指正) 在实际项目中写单元测试的过程中我们会发现需要...
    盛京最帅得仔阅读 1,287评论 0 2
  • 单元测试的目标和挑战 单元测试的思路是在不涉及依赖关系的情况下测试代码(隔离性),所以测试代码与其他类或者系统的关...
    jiangmo阅读 2,260评论 0 2
  • class反射 通过类名的字符串形式实例化对象 Class class NSClassFromString@(@"...
    R丶Madrid阅读 347评论 0 0

友情链接更多精彩内容