快速模拟弹簧启动休息控制器的反应



我正在寻找一种工具或库,它允许我快速开发一个 Spring Boot 后端,在我们等待客户提供有关服务业务逻辑的规范时,它会公开模拟的 REST 服务。

是否有任何最佳实践?例如从 JSON 文件或其他内容读取?

感谢大家

******* 其他信息 *******

  • 我想使用相同的服务器(嵌入式服务器(,因为已经开发了某些API。
  • 我需要真正的服务响应,而不是测试。
  • 我想要比返回语句更有条理的东西
    return "{
    "id": 01,
    "name": "Donald Stumpet"
    }";
    

在这种情况下,Wiremock将是你的伙伴(http://wiremock.org/docs/getting-started/(

在春季启动测试类中,设置线模拟规则:

@Value("${wireMockServer.port}")
private int wireMockPort;
private WireMockRule wireMockRule;
@Rule
public WireMockRule getWireMockRule() {
if (wireMockRule == null) {
wireMockRule = new WireMockRule(wireMockConfig().port(wireMockPort).notifier(new Slf4jNotifier(true)));
}
return wireMockRule;
}

然后模拟你的 API:

String url = UriComponentsBuilder
.fromUriString("XXXXX").buildAndExpand("pathParam1", "pathParamVal").toUriString();
stubFor(get(urlEqualTo(url))
.willReturn(aResponse()
.withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)
.withHeader("Connection", "close")
.withBody(asJson(mockedResponseObject))));

如果您不想以编程方式存根您的请求并将它们存储在 json 文件中,那么 使用属性wireMock.mappingsUnderClasspath提及映射位置

在该目录中,创建一个名为mappings的文件夹并放置您的映射 json 文件: 例如。

{
"request": {
"method": "GET",
"urlPattern": "/foo/myApi"
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"bodyFileName": "mockedResponse.json"
}
}

并将 mockedResponse.json 保存在wireMock.mappingsUnderClasspath中名为__files(双下划线(的目录中

相关内容

  • 没有找到相关文章

最新更新