gpt4 book ai didi

java - 使用 Wiremock,我可以返回一个依赖于发布请求的主体吗

转载 作者:太空狗 更新时间:2023-10-29 22:46:34 28 4
gpt4 key购买 nike

我正在尝试测试 openid 提供程序类。 openid 消费者类正在发出 http 请求。我正在使用 wiremock 模拟对此请求的响应。我正在尝试模拟有效的 openid 响应。但是,有效响应取决于请求参数。使用 wiremock,我可以设置一个模拟请求,其中响应的主体取决于请求参数吗?

最佳答案

这是可能的,您只需要使用 ResponseTansformer。在下面的示例代码中,responseDefinition 由下面给出的 stub 确定。在这里,我通过简单地将正文字节返回给调用者来模拟编码服务。尽管在转换器中我可以根据请求的内容自由返回任何我喜欢的东西。

int port = 8080;
WireMockServer wireMockServer = new WireMockServer(new WireMockConfiguration().port(port).extensions(new ResponseTransformer() {
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files) {
return new ResponseDefinitionBuilder().like(responseDefinition)
.withBody(request.getBodyAsString().getBytes())
.build();
}

@Override
public String name() {
return "request body returning request transformer";
}
}));
wireMockServer.start();
WireMock.configureFor("localhost", port);

stubFor(post(urlEqualTo("/encode"))
.willReturn(aResponse()
.withHeader("Content-Type", "application/octet-stream")
.withStatus(200)));

stubFor(post(urlEqualTo("/decode"))
.willReturn(aResponse()
.withHeader("Content-Type", "application/octet-stream")
.withStatus(200)));

关于java - 使用 Wiremock,我可以返回一个依赖于发布请求的主体吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18581520/

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