目前我正在通过我的 java 代码在我的存根中设置请求和响应,如下所示。
wireMockRule.stubFor(WireMock.get(WireMock.urlEqualTo("/abc/xyz"))
.willReturn(WireMock.aResponse()
.withBody("Hey")
.withStatus(HttpStatus.OK.value())
.withHeader("Content-Type",
"application/text")));
我想知道是否有可能在 json 文件中定义所有存根配置,如下所示,然后在我的 java 代码中读取它。
{
"request": {
"method": "GET",
"url": "/abc/xyz"
},
"response": {
"status": 200,
"jsonBody": {"Hey"},
"headers": {
"Content-Type": "application/test"
}
}
}
我在很多帖子中读到了有关映射文件夹的内容。我不确定那是什么以及如何获取它以及它对我的用例有何帮助?
另外,我读到了有关主体文件名的信息,但这只是对响应主体有帮助,而我希望找到一个有助于处理文件中的整个存根的解决方案。
一个有效的 Java 示例会非常有帮助。
实际上,wiremock 的底层只是读取文件并将它们映射到 POJO。通过查看库源代码可以看到这一点(JsonFileMappingsSource.loadMappingsInto)。
所以要达到同样的效果,你可以这样做:
private static StubMappingCollection deserialize(String fileContent) {
return com.github.tomakehurst.wiremock.common.Json.read(
fileContent,
StubMappingCollection.class);
}
您还可以通过这种方式设置存根的自定义路径(版本3.3.1):
@Test
public void anyTest(WireMockRuntimeInfo runtimeInfo) {
final WireMock wireMock = runtimeInfo.getWireMock();
wireMock.loadMappingsFrom(rootDir);
}