gpt4 book ai didi

unit-testing - Resteasy,使用 RestEasy 的服务器端模拟框架制作 Http-Put 或 Http-Post

转载 作者:可可西里 更新时间:2023-11-01 16:06:45 28 4
gpt4 key购买 nike

我写了一个我想测试的 Rest-Service。我想在不运行服务器的情况下运行 JUnit 测试。为此,我使用了 RestEasy 的服务器端模拟框架。

我的问题是,如何使用此框架在 Http-Body 中使用编码的 Java 对象发出 Http-Put 或 Http-Post 请求???

下面的代码对于 Http-Get 运行良好,但是如何进行 Put 或 Post,也许有人为此获得了一些示例代码???

@Test
public void testClient() throws Exception {

Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();

POJOResourceFactory noDefaults = new POJOResourceFactory(
MyClass.class);
dispatcher.getRegistry().addResourceFactory(noDefaults);

{
MockHttpRequest request = MockHttpRequest.get("/message/test/"
+ requestParam);
MockHttpResponse response = new MockHttpResponse();

dispatcher.invoke(request, response);
assertEquals(HttpServletResponse.SC_OK, response.getStatus());

}
}

最佳答案

回复有点晚,但是,可能对某些人有用。这就是我通常测试 PUT 请求的方式。希望对你有帮助

@Test
public void testPUT() throws Exception {
POJOResourceFactory noDefaults = new POJOResourceFactory(REST.class);

Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
dispatcher.getRegistry().addResourceFactory(noDefaults);

String url = "your_url_here";

MockHttpRequest request = MockHttpRequest.put(url);
request.accept(MediaType.APPLICATION_JSON);
request.contentType(MediaType.APPLICATION_JSON_TYPE);
// res being your resource object
request.content(res.toJSONString().getBytes());

MockHttpResponse response = new MockHttpResponse();
dispatcher.invoke(request, response);

Assert.assertEquals( HttpStatus.SC_CREATED,response.getStatus());

}

关于unit-testing - Resteasy,使用 RestEasy 的服务器端模拟框架制作 Http-Put 或 Http-Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976102/

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