Robolectric框架概述

Robolectric框架的核心作用在于使用一套在Android api的基础上修改的或者自定义的一套api,基本上是和Android api一一对应的。需要这样做的原因是,android单元测试是跑在jvm上的。

优点是不用跑一次单元测试就完整的启动一个Android进程,jvm进程比Android启动快很多,调试或者运行的效率就高了。

但是缺点是运行时缺少android的环境,那么需要一个模拟的,简化的Android环境,可以满足测试用例对Android环境的基本依赖,下面说说Robolectric是怎么模拟以及如何简化的:

1.模拟启动Activity时调用生命周期回调方法,加入用于判断最近用于启动Activity的Intent的API(模拟的启动过程必然没有注册到AMS过程,也没有与WMS通信创建窗口的过程)

2.对模拟ContentProvider和数据库的读写(模拟中肯定没有跨进程通信,即没有向AMS发布IContentProvider的过程,对ContentProvder的读写也不依赖Binder驱动,都是在测试进程中完成),

3.对Handler,Looper,MessageQueue进行了很好的模拟,还加入了对MessageQueue中的消息分发的控制,便于对执行结果进行断言,当然模拟的消息循环系统肯定没有native消息循环部分。

总而言之,Robolectric是用于模拟了部分Android环境的,解决了测试用例需要对Android基本环境的依赖问题;不是完全的模拟,这样可以加快单元测试运行的速度;加入某些监视某些结果或者状态的接口,加入了某些用于控制生命周期或者触发特定行为的api,这样便于对被测试代码流进行控制及获取代码运行结果进行断言

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值