无法使用robolectric捕获HTTP请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用robolectric捕获HTTP请求相关的知识,希望对你有一定的参考价值。
我试图用Robolectric捕获一个http请求方法tokenize方法向服务器发送一个请求,我只想测试发送的帖子:如果我尝试
//Cardtest.java
Robolectric.setDefaultHttpResponse(200, "dummy");
card.tokenize(paymentHandler);
Robolectric.getSentHttpRequest(0);
我有一个空数组错误
但我知道请求已发送,因为如果我删除第一行,则会出现以下错误:
Unexpected HTTP call POST
如果我把log语句看起来似乎永远不会为http请求调用我的成功块。
如何确保调用我的HTTP请求成功回调。
(我已经尝试过Robolectric.runUiThreadTasksIncludingDelayedTasks();)
谢谢
答案
我们在评论中讨论过。问题是因为Robolectric
被配置为不拦截http请求:
Robolectric.getFakeHttpLayer().interceptHttpRequests(false)
另一答案
高于3.0和更高版本,您可以使用
FakeHttp.getFakeHttpLayer().interceptHttpRequests(false);
以上是关于无法使用robolectric捕获HTTP请求的主要内容,如果未能解决你的问题,请参考以下文章
为啥 charles 无法通过 c++ 捕获 http 请求?
使用 Robolectric ClassCastException 进行 Android 测试:android.app.Application 无法转换为 MyApplication