android studio单元测试网络请求,Android单元测试(二)测试网络请求

上次发了那篇文章之后,有人和我说网络请求那边无法进行单元测试。

按照上一章的操作去执行肯定是跑不了网络请求模块的单元测试,平时如果对网络请求模块进行单元测试,能直接判断不同的入参会有那些结果,而不用运行程序,相对刚开始开发而言还是十分方便的。

所以这章就是为了补充上一章,简单聊聊为什么单元测试无法测试网络请求,然后我又是怎么处理的。

一.为什么单元测试无法测试网络请求

相同的问题有,为什么单元测试网络请求不走回调。

其实这个问题不是因为没有走回调方法,而是普通的单元测试的操作无法测试异步。可以说你的异步操作还没回调的时候,这个测试的方法就走完了。

网上有很多人说用CountDownLatch 的await()方法可以解决,我自己试了下发现是没效果的。

二.解决方法

其实不用考虑这么多,直接把异步改成同步就行,测试的时候把方法的异步改成同步测试,测试完之后再把同步改成异步。比如我用okhttp的话,原本的异步是这样写

callback = new CallBack { ...... }

call.enqueue(callback );

改成

Response response = call.execute();

String result = response.body().string();

callBack.onResponse(result);

然后在测试类中写测试方法

@Test

public void doPost() {

Map params = new HashMap<>();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值