前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mock单元测试(jmockit)

Mock单元测试(jmockit)

作者头像
用户5325874
发布2022-05-06 16:50:10
7920
发布2022-05-06 16:50:10
举报

备注:单元测试讲究覆盖情况,每一种情况写一个单元测试,保证接口可用性。本文使用jmockit

原理

JMockit是基于JavaSE5中的java.lang.instrument包开发,内部使用ASM库来动态修改java的字节码,使得java这种静态语言可以想动态脚本语言一样动态设置被Mock对象私有属性,模拟静态、私有方法行为等等,对于手机开发,嵌入式开发等要求代码尽量简洁的情况下,或者对于被测试代码不想做任何修改的前提下,使用JMockit可以轻松搞定很多测试场景。

使用

JMockit的测试方式可以通过下面2个途径实现:

一.根据用例的测试路径,测试代码内部逻辑

代码语言:javascript
复制
对于这种情景,可以使用jmockit的基于行为的mock方式。在这种方式中,目的是测试单元测试及其依赖代码的调用过程,验证代码逻辑是否满足测试路径。  由于被依赖代码可能在自己单测中已测试过,或者难以测试,就需要把这些被依赖代码的逻辑用预定期待的行为替换掉,也就是mock掉,从而把待测是代码隔离开,这也是单元测试的初衷。 这种方式和白盒测试接近。

二.根据测试用例的输入输出数据,测试代码是否功能运行正常。

代码语言:javascript
复制
   对于这种情景,可以使用jmockit基于状态的mock方式。目的是从被测代码的使用角度出发,结合数据的输入输出来检验程序运行的这个正确性。使用这个方式,需要把被依赖的代码mock掉,实际上相当于改变了被依赖的代码的逻辑。通常在集成测试中,如果有难以调用的外部接口,就通过这个方式mock掉,模拟外部接口。 这种方式有点像黑盒测试。

jmockit基本有三个步骤:

(1)打桩。指定要打桩类和函数,模拟返回结果。

(2)调用被测方法。被测逻辑执行过程中,之前的打桩数据生效。

(3)判断测试结果是否符合预期。

具体实例:https://www.cnblogs.com/zishi

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档