Android Robolectric:使用HTTP响应进行测试
我用以下代码创建了一个带有Robolectric的测试调用APIAndroid 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
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