首页 > 解决方案 > 如何测试 HTTP 请求

问题描述

我已经设置了这个简单的 http 请求,它只是向我的 IDE 终端返回一个“hello world”响应。我一直在研究测试,但我不太确定如何测试此方法返回的内容。

目前我已经对 JUnit 进行了自己的研究,但我什至不确定这是否是解决此问题的正确工具。我只研究了这个,因为它是一个 Java 工具。

public static void newRequest() throws IOException {

    URL helloServer = new URL("http://localhost:5050/");

    HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
    HttpRequest request = requestFactory.buildGetRequest(new GenericUrl(helloServer));

    HttpResponse rawResponse = request.execute();
    String responseString = rawResponse.parseAsString();

    logger.debug(responseString);

}

对此的任何指导将不胜感激。该功能甚至需要测试吗?

标签: javatestinghttprequest

解决方案


该功能甚至需要测试吗?好吧,这完全取决于你。此函数是否包含对您的应用程序至关重要的代码?如果是这样,那么是的。如果此功能中的错误影响很小,那么可能不会。

假设您要对此进行测试,则:

void在函数名称说明之前,有问题的方法没有返回任何内容。您将需要查看测试函数的逻辑。在这种情况下,您需要检查是否收到了正确的响应。我可以想到两种方法来做到这一点:

  1. 修改代码以返回响应。

您可以更改函数以返回一个字符串,然后返回rawResponse.parseAsString();(这与您正在记录的内容相同。

然后您可以从测试中调用该函数并检查返回的字符串。

  1. 从您的记录器获取日志消息。

根据您使用的日志记录,您可以获得该函数写入的日志消息。假设 log4j 那么有一些关于如何做到这一点的帖子:

log4j:如何获取最后插入的日志消息?

就个人而言,我更喜欢第一种选择,因为它省力。我还会考虑返回响应的正文而不是原始响应。


推荐阅读