android 测试 mock,Mock在Android TDD中的使用

想要更好地使用Android的TDD,应用MOCK是必不可少的。那么MOCK又是什么呢?说白了MOCK就是一系列的模拟类,在TDD中使用这些MOCK的类来代替真实的类。那为什么要用MOCK呢?

为了更好的说明用MOCK的理由,请看下图:

在这里模块A依赖于模块B,C,D,而我们要测的就是模块A。但是它有依赖,而且这些依赖说不定现在根本都还没实现或者很复杂,在这种情况下,如果要测模块A,MOCK就十分有必要了。如下图所示,我们将模块B,C,D都使用MOCK来代替,这样就可以消除A的所有依赖,让我们专注于A的测试了。

说起来容易,但是怎么用MOCK来代替所依赖的部分呢?又怎么来实现这些MOCK呢?

打开android.jar的android.test.mock目录,可以看到里面有很多Mockxxx类,这些都是ANDROID提供给我们的可以直接继承来实现的MOCK类,比如说你想创建一个MOCK CURSOR,就可以直接继承MockCursor,然后再加上一些自己的实现就可以了,这个我在下文会做详细的说明。当然可以MOCK的不仅限于这几个类,基本所有的类都可以MOCK,只要继承这个类并且重写你会用到的方法就可以了。当然如果类中有private的方法想要mock就比较麻烦了。

假如说一个应用中有一个ListView,ListView的内容来自于查询content provider得到的cursor。在对这个list进行TDD的时候要怎么来MOCK这个cursor呢?现来看一下android程序是如何得到cursor的呢?没错,用的是getContentResolve

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值