如何使用JAVA模拟获取HTTP请求

如何使用JAVA模拟获取HTTP请求,java,rest,mockito,Java,Rest,Mockito,如何使用JAVA模拟获取http请求? 我有这个方法: public HTTPResult get(String url) throws Exception{ try { ResponseEntity<String> response = restTemplate.getForEntity(url, String.class); return new HTTPResult(response.getBody(), resp

如何使用JAVA模拟获取http请求? 我有这个方法:

public HTTPResult get(String url) throws Exception{
        try {
            ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
            return new HTTPResult(response.getBody(), response.getStatusCode().value());
        }
        catch (ResourceAccessException e) {
            String responseBody = e.getCause().getMessage();
            JSONObject obj = new JSONObject(responseBody);
            return new HTTPResult(obj.getString("responseBody"), Integer.parseInt(obj.getString("statusCode")));
        }
    }

如何验证我得到的是:responseBody-一些json和statusCode,例如200?

如果你想要一个真正的单元测试,你必须考虑使用模拟框架,比如EasyMock,或者Mockito,我推荐后者。这可能需要对生产代码进行返工,因为对new的调用经常会使这些框架出现问题。还有其他更好的框架:JMockit或PowerMockito,但是,如果可能的话,使用Mockito


如果您更希望进行一种端到端的测试:例如,Jersey有一些测试框架。意思:实际上,您几乎可以完全单元测试REST端点,而无需运行真正的服务器。

您看过MockMvc吗?我注意到您还没有接受任何答案。请考虑在某个时候做这件事。如果您还有其他问题,请告诉我。