gpt4 book ai didi

java - 对 REST 端点进行单元测试的最佳方法是什么( Jersey )

转载 作者:搜寻专家 更新时间:2023-11-01 03:05:38 25 4
gpt4 key购买 nike

我有一个 REST Controller ,它有多个 GET/POST/PUT 方法,它们都响应/请求 JSON。我还没有在此应用程序中使用 Spring。

我正在研究 REST-assured 框架,我喜欢它的外观,但我只能在我的 Web 服务器启动并运行时使用它。

有没有办法让我运行内存中的网络服务器或类似的东西?是否有人可以提供任何 REST 端点测试示例?

最佳答案

如果您使用的是 JAX-RS 2.0,您应该找到答案 here

你可以看看example还有

一个集成测试示例,可以是:

public class CustomerRestServiceIT {

@Test
public void shouldCheckURIs() throws IOException {

URI uri = UriBuilder.fromUri("http://localhost/").port(8282).build();

// Create an HTTP server listening at port 8282
HttpServer server = HttpServer.create(new InetSocketAddress(uri.getPort()), 0);
// Create a handler wrapping the JAX-RS application
HttpHandler handler = RuntimeDelegate.getInstance().createEndpoint(new ApplicationConfig(), HttpHandler.class);
// Map JAX-RS handler to the server root
server.createContext(uri.getPath(), handler);
// Start the server
server.start();

Client client = ClientFactory.newClient();

// Valid URIs
assertEquals(200, client.target("http://localhost:8282/customer/agoncal").request().get().getStatus());
assertEquals(200, client.target("http://localhost:8282/customer/1234").request().get().getStatus());
assertEquals(200, client.target("http://localhost:8282/customer?zip=75012").request().get().getStatus());
assertEquals(200, client.target("http://localhost:8282/customer/search;firstname=John;surname=Smith").request().get().getStatus());

// Invalid URIs
assertEquals(404, client.target("http://localhost:8282/customer/AGONCAL").request().get().getStatus());
assertEquals(404, client.target("http://localhost:8282/customer/dummy/1234").request().get().getStatus());

// Stop HTTP server
server.stop(0);
}
}

关于java - 对 REST 端点进行单元测试的最佳方法是什么( Jersey ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23762443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com