我是Java Unit测试的新手。我面临的问题是,我需要开发一个Junit测试,将请求发送到服务器API以测试两种方法:addUser和deleteUser。如果我想从服务器添加/删除用户,我需要从服务器获取一个身份验证令牌;但是,由于服务器端的某些问题,我目前无法获得有效的令牌。所以我想到的是模拟服务器行为,如果服务器收到来自Unit测试的请求,它可以使用Jason数据进行响应,该数据指示添加/删除用户操作的状态。
因为我对Junit完全陌生。我不知道如何实现这个操作。所以我的问题是应用模拟的最简单方法是什么?
答案 0 :(得分:4)
您可以在单元测试中模拟启动一个test-http-server。有几个框架可以做到这一点。例如Mockserver和Wiremock。
答案 1 :(得分:3)
您可以使用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的回购以获取更多详细信息。我认为它可能适合您。
答案 2 :(得分:1)
HttpResponse httpResponse = mock(HttpResponse.class);