无法使用robolectric捕获HTTP请求

问题描述 投票:1回答:2

我试图用Robolectric捕获一个http请求方法tokenize方法向服务器发送一个请求,我只想测试发送的帖子:如果我尝试

//Cardtest.java

Robolectric.setDefaultHttpResponse(200, "dummy");
card.tokenize(paymentHandler);
Robolectric.getSentHttpRequest(0);

我有一个空数组错误

但我知道请求已发送,因为如果我删除第一行,则会出现以下错误:

Unexpected HTTP call POST

如果我把log语句看起来似乎永远不会为http请求调用我的成功块。

如何确保调用我的HTTP请求成功回调。

(我已经尝试过Robolectric.runUiThreadTasksIncludingDelayedTasks();)

谢谢

java android unit-testing testing robolectric
2个回答
0
投票

我们在评论中讨论过。问题是因为Robolectric被配置为不拦截http请求:

Robolectric.getFakeHttpLayer().interceptHttpRequests(false)

1
投票

高于3.0和更高版本,您可以使用

 FakeHttp.getFakeHttpLayer().interceptHttpRequests(false);
© www.soinside.com 2019 - 2024. All rights reserved.