问题描述
我在使用 Wiremock 中的 Handlebars 助手时遇到问题。
我注册了一个这样的自定义转换器:
final WireMockServer wireMockServer = new WireMockServer(wireMockConfig().port(PORT).extensions(new ResponseTemplateTransformer(true),new CustomTransformers.FileNameTransformer()));
工作场景: 当我像这样创建存根时它工作得很好:
stubFor(get("/my/path/with/12345/id")
.willReturn(aResponse()
.withStatus(200)
.withHeader("Content-Type","text/json")
.withTransformers("response-filename-handler")
.withBodyFile("myJsonFile.json")
));
myJsonFile.json 中的内容:
{
"key": "{{request.query.path.[3]}}"
}
在这种情况下,我得到了预期的响应:
{
"key": "12345"
}
不工作场景: 问题是当我尝试在我的 CustomTransformer 中使用该文件进行响应时:
public class CustomTransformers {
public static class FileNameTransformer extends ResponseDefinitionTransformer {
@Override
public ResponseDefinition transform(Request request,ResponseDefinition responseDefinition,FileSource fileSource,Parameters parameters) {
return ResponseDefinitionBuilder.like(responseDefinition).but().withBodyFile("myJsonFile.json").build();
}
@Override
public String getName() {
return "response-filename-handler";
}
}
}
我希望 Handlebars 助手与 WORKING SCENARIO 一样。但我实际上得到了与文件内容相同的响应。我得到的不是来自请求路径的值,而是字符串“{{request.request.path.[3]}}”。
预期响应:
{
"key": "12345"
}
我得到的回应:
{
"key": "{{request.query.path.[3]}}"
}
关于如何实现这一目标的任何想法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)