Jmockit

本文探讨了Behavior-oriented与State-oriented两种mock测试方法的区别。前者更像黑盒测试,后者类似白盒测试,并能深入代码内部进行参数检查及匹配。此外,文章还介绍了State-oriented mock的实现原理,包括使用javaagent技术在类加载时修改字节码。

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

Behavior-oriented是基于行为的mock,对mock目标代码的行为进行模仿,更像黑盒测试。State-oriented 是基于状态的mock,是站在目标测试代码内部的。可以对传入的参数进行检查、匹配,才返回某些结果,类似白盒。而State-oriented的 new MockUp基本上可以mock任何代码或逻辑。

=============================================================================================================
原理:
使用了javaagent, 在类加载@Mocked的注解对象的时候有个hook--ClassFileTransformer来修改字节码文件,
执行到Expectations和Verifications的方法块内时使用了hook--InstrumentationImpl.redefineClasses来重新定义已经在jvm里的类。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值