我目前正在运行Wiremock standalone,我试图模拟一个访问数据库的服务。
我的映射文件如下所示:-
{
"request": {
"method": "GET",
"urlPath": "/testService/search/details"
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/hal+json"
},
"transformers": ["response-template"],
"bodyFileName": "/testTable/{{request.query.productCode}}.json"
}
}
所以如果我点击这个网址:-
http://localhost/testService/search/details?productCode=12345
然后它将进入数据库获取退货产品12345。
如果我向服务发送数据库中不存在的请求(例如productCode=0),它会给我一个标准的空响应,例如:-
{
"products": []
}
因此,我试图让wiremock使用JSON配置执行同样的操作。
目前,如果我使用没有相应响应文件的productCode向wiremck发送请求,我会收到这个错误:-
Error 500 java.io.FileNotFoundException
但是如果它没有找到响应文件,我希望它用一个空响应回复,所以我想寻找一个匹配的响应文件,如果它没有找到,然后返回到一个默认响应文件,该文件将包含以下内容:-
{
"products": []
}
我在wiremock文档中没有看到任何引用FileNotFoundException默认响应的内容。
因此,我认为您需要编写一个定制的响应转换器来实现这一点。大致如下:
public static class ExampleTransformer extends ResponseDefinitionTransformer {
@Override
public ResponseDefinition transform(Request request, ResponseDefinition responseDefinition, FileSource files, Parameters parameters) {
String productCode = request.queryParameter("productCode").toString();
File jsonFile = new File("/path/to/json/testTable/" + productCode + ".json")
if (jsonFile.exists()) {
return responseDefinition;
} else {
return new ResponseDefinitionBuilder()
.like(responseDefinition)
.but()
.withBodyFile("/path/to/empty/product/array/file.json")
.build();
}
}
@Override
public String getName() {
return "example";
}
}
然后,您只需将现有映射的转换器更新为您在getName()
中定义的名称,并添加一个空的产品JSON文件。转换器将返回带有相应产品代码JSON文件的现有定义响应,或者如果该文件不存在,它将返回指定的空产品JSON文件。
(我没有确定Java代码是否会编译/运行,但这应该足够让您上路了:)
我正在使用java中的WireMock来存根POST请求。该请求返回一个json主体文件,该文件存储在my local中。存根如下所示: 响应主体文件的一部分,“stubThree”如下所示: 请求url有许多参数,如下所示: stubing工作得很好,但我的目标是使用响应模板提供动态响应。我只想使用请求url中的“subscription_proration_date”值更新json文件的“st
当通过URL调用我的Web应用程序中不存在的项目时,Spring会使用JSON响应,其中包含(时间、状态、错误、消息、路径)等数据。所以,我需要更改这个JSON的结构,特别是我需要删除路径。我该怎么做?我应该在我的项目中在哪里实现异常的自定义?向大家问好! json响应修改
我现在正在尝试使用FastAPI构建一个API。我想让一个路由(接受查询)也在响应中返回它们,以便用户可以仔细检查他输入的查询(也可以查看总共有多少页等)。 我正在使用response_model响应方式,并且一生都无法弄清楚如何将其他参数插入响应中。 我已经尝试将响应模型中的所有字段设置为可选,因此它在检查时不再抛出错误,但它仍然只是(如果它响应)在没有添加信息的情况下响应。在下面,您可以看到我
问题内容: 如何让selenium等待日历小部件的加载?现在,我只是在将测试用例导出到junit程序后进行操作。 问题答案: 我会用 这将一直等待,直到元素出现在DOM中为止。 如果您需要检查元素是否可见,则最好使用
问题内容: 如何让硒等待日历小部件的加载?现在,在将测试用例导出到junit程序后,我只是在做一个。 问题答案: 我会用 这将一直等待,直到元素出现在DOM中为止。 如果您需要检查元素是否可见,则最好使用
JavaFX MenuItem可以通过设置ActionEvent EventHandler来响应大多数按键事件。但是,虽然事件处理程序捕获KeyCode.Enter的按键,但它不捕获KeyCode.Tab按键事件。显然,像TAB这样的一些关键事件是在更深层次上处理的。例如,箭头键启用菜单的遍历。 My ContextMenu是用户开始在TextField中键入的电子邮件地址字符串的完整列表。用户希