【发布时间】:2018-11-02 14:01:27
【问题描述】:
我在使用 WireMock 时遇到问题,我扩展了 ResponseTransformer 并实现了所有必需的方法,如下所示:
public class TempResponseTransformer extends ResponseTransformer {
@Override
public Response transform(Request request, Response response, FileSource fileSource,
Parameters parameters) {
return Response.Builder.like(response).but().status(404).body("1").build();
}
@Override
public boolean applyGlobally() {
return false;
}
@Override
public String getName() {
return "temp-response-transformer";
}
}
现在我想将这个特殊的转换器应用到我写的一个存根上,存根看起来像这样:
private static void initTempStub() {
stubFor(post(urlPathEqualTo("/api/v1/temp"))
.withHeader("AccessToken", matching("[a-zA-Z0-9]+"))
.withHeader("CliendID", matching("[a-zA-Z0-9]+"))
.withHeader("ClientSecret", matching("[a-zA-Z0-9]+"))
.willReturn(aResponse()
.withTransformers("temp-response-transformer")));
}
当我开始服务并执行 post 调用时,我确实看到应用了转换器,但响应实际上没有被转换。 我也尝试在启动服务时在配置部分应用变压器,但没有帮助。
所以我的问题是我应该如何正确应用ReponseTransformer 才能改变我的回答?
【问题讨论】:
标签: wiremock