java - 无法使用 robolectric 捕获 HTTP 请求

标签 java android unit-testing testing robolectric

我正在尝试使用 Robolectric 捕获 http 请求 方法 tokenize 方法向服务器发送请求,我只想测试帖子是否已发送: 如果我尝试

//Cardtest.java

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

我有一个空数组错误

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

Unexpected HTTP call POST

如果我放置日志语句,似乎永远不会为 http 请求调用我的成功 block 。

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

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

谢谢

最佳答案

正如我们在评论中讨论的那样。问题是因为 Robolectric 配置为不拦截 http 请求:

Robolectric.getFakeHttpLayer().interceptHttpRequests(false)

关于java - 无法使用 robolectric 捕获 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708844/

相关文章:

java - Android Studio - 文件是只读的

java - 加载一个大的正数 BigInteger

java - Android - 进度条不更新

java - 可以在 Android VKB 上的 CodenameOne 中切换下一步/结束按钮

android - Datepicker 给出时间不在异常之间

php - 我在哪里可以找到 Simpletest 的扩展 HTML 报告程序?

java - 如何使用 Spring Data JPA 发出修改查询以通过其 ID 删除一组实体?

android - ListView with ViewHolder,TextViews改变内容

angularjs - 如何为 keydown 绑定(bind)指令编写单元测试?

unit-testing - 单元测试采用