有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何模拟HTTP响应

我是Java单元测试的新手。我面临的问题是,我需要开发一个JUnit测试来向服务器的API发送请求,以测试两个方法:addUserdeleteUser。如果我想从服务器添加/删除用户,我需要从服务器获取身份验证令牌;但是,由于服务器端的一些问题,我目前无法获取有效的令牌。因此,我想到的是模拟服务器的行为,即如果服务器接收到来自单元测试的请求,它可以使用指示添加/删除用户操作状态的JSON数据进行响应

因为我对JUnit完全陌生。我不知道如何实施这项行动。所以我的问题是,应用mock最简单的方法是什么


共 (3) 个答案

  1. # 1 楼答案

    您可以在单元测试中启动测试http服务器。 有几个框架可以做到这一点。例如MockserverWiremock

  2. # 2 楼答案

    您可以使用HTTP Unit Testing from Google来实现这一点

    为了生成简单的HTTP响应,您可以使用以下代码:

    HttpTransport transport = new MockHttpTransport();
    HttpRequest request = transport.createRequestFactory().buildGetRequest(HttpTesting.SIMPLE_GENERIC_URL);
    HttpResponse response = request.execute();
    

    您还可以通过重写MockHttpTransport类的实现来定制测试

    您可以查看here此回购协议以了解更多详细信息。我认为它适合你