gpt4 book ai didi

java - 如何模拟 WebResource Rest 调用

转载 作者:行者123 更新时间:2023-11-30 11:32:47 25 4
gpt4 key购买 nike

如何模拟下面的代码行

WebResource jobBuilder = restClient.resource(jobBuilderUrl);
String jobXml = jobBuilder
.accept(MediaType.APPLICATION_XML)
.type(MediaType.APPLICATION_JSON)
.entity(request)
.post(String.class);

我尝试使用以下代码使用简单的模拟来模拟它,但它返回 NullPointerException

WebResource jobBuilder = EasyMock.createMock(WebResource.class);
expect(jobBuilder
.accept(MediaType.APPLICATION_XML)
.type(MediaType.APPLICATION_JSON)
.entity(EasyMock.notNull())
.post(String.class)).andReturn("<test></test>");
replay(jobBuilder);

最佳答案

How to mock the following lines of code

不要。它没有任何值(value)。而是启动一个嵌入式 HTTP 服务器并验证它是否收到了您期望的请求。这是您在编写此代码时真正关心的内容,因此您应该测试这些内容。使用 Simple Framework 很容易做到这一点或 Jetty .

例子:

jobBuilder
.accept(MediaType.APPLICATION_XML)
.type(MediaType.APPLICATION_JSON)
.entity(request)
.post(String.class);

等同于:

jobBuilder
.accept(MediaType.APPLICATION_XML)
.entity(request)
.type(MediaType.APPLICATION_JSON)
.post(String.class);

等同于:

jobBuilder
.accept(MediaType.APPLICATION_XML)
.type(MediaType.APPLICATION_JSON)
.post(String.class, entity);

...等等。所有这些都创建相同的 HTTP 请求,但都需要不同且紧密耦合的测试代码。这不是您想要的测试方式。

关于java - 如何模拟 WebResource Rest 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406365/

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