【问题标题】:How to mock GET HTTP request using JAVA如何使用 JAVA 模拟 GET HTTP 请求
【发布时间】:2018-10-17 12:47:33
【问题描述】:

如何使用 JAVA 模拟 GET 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?

【问题讨论】:

  • 你看MockMvc了吗?
  • 我注意到您尚未接受任何答案。请考虑在某个时候这样做。或者,如果您有任何其他问题,请在此处告诉我。

标签: java rest mockito


【解决方案1】:

如果您想要一个“真正的”单元测试,您必须考虑使用模拟框架,例如 EasyMock 或 Mockito(我推荐后者)。这可能需要重新编写您的生产代码,因为对new() 的调用通常会使这些框架出现问题(那里还有其他更好的框架:JMockit 或 PowerMockito,但同样:如果可能的话和 Mockito 一起去)。

如果您希望进行更“端到端”的测试:有针对 Jersey 的测试框架(例如,参见 here)。含义:您实际上可以几乎完全“单元测试”您的 REST 端点,而无需运行真正的服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2012-12-11
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多