我是Java Unit测试的新手。我面临的问题是我需要开发一个 JUnit 测试来向服务器的 API 发送请求以测试两种方法:addUser
和 deleteUser
。如果我想从服务器添加/删除用户,我需要从服务器获取身份验证令牌;但是,由于服务器端的一些问题,我目前无法获得有效的令牌。因此,我想到的是模拟服务器的行为,即如果服务器收到来自单元测试的请求,它可以使用指示添加/删除用户操作状态的 JSON 数据进行响应。
因为我对JUnit完全陌生。我不知道如何实施该操作。所以我的问题是,应用模拟的最简单方法是什么?
HttpResponse httpResponse = mock(HttpResponse.class);
看到这个: Mocking Apache HTTPClient using Mockito
你可以在单元测试中启动一个test-http-server。有几个框架可以做到这一点。例如Mockserver和Wiremock。
你可以通过使用谷歌的HTTP单元测试来做到这一点。
为了生成一个简单的HTTP响应,您可以使用以下代码:
HttpTransport transport = new MockHttpTransport();
HttpRequest request = transport.createRequestFactory().buildGetRequest(HttpTesting.SIMPLE_GENERIC_URL);
HttpResponse response = request.execute();
您还可以通过重写 MockHttpTransport 类的实现来自定义测试。
您可以在此处查看此存储库以获取更多详细信息。我认为它可以适合你。