带有lambda函数的rest api调用的Junit测试用例

考虑一个内部使用lambda函数的rest api调用方法,我们如何编写junit测试用例。我尝试了一下,但未能模拟uri构建器,该构建器在post api调用中表示为lambda函数。还有如何在flatMap中模拟块。下面给出了我尝试为其编写单元测试的代码段。

public ResponseEntity<String> findEmployee(String empName,String empId) {

        response = employeeService.post.uri(builder -> builder.path(pathMapper.get("GET_PATH")).queryParam(EMP_ID,empId).build())
            .accept(APPLICATION.JSON)
            .syncBody(empName)
            .exchange()
            .flatMap( empResponse -> {
                LOGGER.info(empResponse.getStatusCode());
                return empResponse.toEntity(String.class);
            }).block();

            return response;
    }

在这里,employeeService是一个Webclient对象。任何帮助将不胜感激。

WOAI88521 回答:带有lambda函数的rest api调用的Junit测试用例

朋友不要让朋友嘲笑Fluent API。

lambda是嵌入式嵌入的,因此不能单独测试 。如果需要,则必须将其提取到可以测试 的方法调用中。

  .flatMap( this::handleResponse )
  .block();
...
String handleResponse( Response empResponse ) {
  LOGGER.info(empResponse.getStatusCode());
  return empResponse.toEntity(String.class);
}

更笼统地说,您可能希望查看类似Wiremock的内容,它会设置一个本地网络服务器,您可以使用设置的测试响应作为种子。

本文链接:https://www.f2er.com/3142640.html

大家都在问