【问题标题】:Mocking responses in RobospiceRobospice 中的模拟响应
【发布时间】:2017-06-02 09:09:09
【问题描述】:

是否有可能在 Android 中使用 Robospice 模拟响应,因为我需要创建演示应用程序,该应用程序将在应用程序的 json 文件中包含所有响应?我试图使用https://github.com/andrzejchm/RESTMock,但有一些问题,我正在获取信息:RESTMock successfully started! url: http://localhost:34163/,仅此而已。还有什么想法吗?

【问题讨论】:

  • 您想在应用程序中模拟自己的响应,还是有一个模拟服务器(如 RESTMock 或 Wiremock)与您的应用程序通信?
  • 如果它可以在应用程序内部而不与真实服务器建立任何连接,那就太好了。所以 RESTMock 是不错的选择,但它不起作用。我在 Application 类中启动服务器并添加 RESTMockServer.whenRequested 但它不工作
  • 您是否将 Robospice 请求发送到 RESTMock (localhost:34163) 的 url?
  • 是的,我的过滤器看起来像:RESTMockServer.whenRequested(pathContains("response")) .thenReturnFile(200, "response.json").delay(TimeUnit.SECONDS, 10); 但什么也没发生。它是在应用程序中正常运行还是仅在测试类中运行?

标签: java android androidhttpclient robospice


【解决方案1】:

在您的 Application 类中,您可以使用以下方式启动 RESTMock:

@Override
public void onCreate() {
    super.onCreate();
    RESTMockServerStarter.startSync(new AndroidAssetsFileParser(getContext()),new AndroidLogger());

    RESTMockServer.whenRequested(pathContains("response"))
        .thenReturnFile(200, "response.json");
}

这确实设置了您的 RESTMock 服务器,但目前还没有执行任何 http 请求。您现在需要将您的 RESTMock 的服务器 url 提供给获取数据的方法。例如,如果您正在使用 Retrofit:

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(RESTMockServer.getUrl())
            .build();

从现在开始,使用改造发出的每个请求都应直接与 RESTMock 服务器通信,并正确获取您指定为模拟的响应。

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 2017-06-21
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多