Android Robolectric:使用HTTP响应进行测试

Android Robolectric:使用HTTP响应进行测试,android,robolectric,http-request,Android,Robolectric,Http Request,我用以下代码创建了一个带有Robolectric的测试调用API FakeHttp fakeHttpLayer = FakeHttp.getFakeHttpLayer(); // Allow all Fake Http Request fakeHttpLayer.interceptHttpRequests(false); FakeHttp.setDefaultHttpResponse(200, "OK"); // Setup the fake HTTP

我用以下代码创建了一个带有Robolectric的测试调用API

    FakeHttp fakeHttpLayer = FakeHttp.getFakeHttpLayer();
    // Allow all Fake Http Request
    fakeHttpLayer.interceptHttpRequests(false);
    FakeHttp.setDefaultHttpResponse(200, "OK");

    // Setup the fake HTTP layer to return HTTP responses based on GET_DATA_URL
    ProtocolVersion httpProtocolVersion = new ProtocolVersion("HTTP", 1, 1);
    HttpResponse successResponse =
            new BasicHttpResponse(httpProtocolVersion, 200, "OK");

    // New HackerNewsAPI
    HackerNewsAPI hnAPI = HackerNewsAPI.getInstance(activity);

    // Check API not null
    Assert.assertNotNull(hnAPI);
    // Call request to GET_DATA_URL
    List<HNStory>  listDeleteStoryId = new ArrayList<HNStory>();
    hnAPI.GetTopStoryIds(NUMIDS, listDeleteStoryId);

    fakeHttpLayer.addHttpResponseRule(GET_DATA_URL, successResponse);
    // Check url GET_DATA_URL was made
    Assert.assertTrue(FakeHttp.httpRequestWasMade(GET_DATA_URL));
FakeHttp fakeHttpLayer=FakeHttp.getFakeHttpLayer();
//允许所有伪造的Http请求
fakeHttpLayer.interceptHttpRequests(false);
setDefaultHttpResponse(200,“OK”);
//设置伪HTTP层以基于GET_DATA_URL返回HTTP响应
ProtocolVersion httpProtocolVersion=新的协议版本(“HTTP”,1,1);
HttpResponse成功响应=
新的基本响应(httpProtocolVersion,200,“OK”);
//新HackerNewsAPI
HackerNewsAPI hnAPI=HackerNewsAPI.getInstance(活动);
//检查API是否为空
Assert.assertNotNull(hnAPI);
//调用请求以获取\u数据\u URL
List listDeleteStoryId=new ArrayList();
hnAPI.getTopStoryId(NUMIDS,listDeleteStoryId);
addHttpResponseUrle(获取数据URL,成功响应);
//检查url获取\u数据\u url是否已生成
Assert.assertTrue(FakeHttp.httprequestwasmake(GET_DATA_URL));

Asset.assertTrue错误。它是假的,意味着没有提出请求。我是否错过了Robolectric的任何设置。有没有人能帮我解决这个问题,为什么请求没有提出。非常感谢

您正在使用apache http客户端吗?如果我是正确的,那么
FakeHttp
只是在模拟apachehttp库。如果使用OKHTTP而不是考虑使用OKHTPMOCKWebServer,您是否使用Apache HTTP客户端?如果我是正确的,那么
FakeHttp
只是在模拟apachehttp库。如果使用OKHTTP而不考虑使用OK-HTTPMOCKWebServer