【问题标题】:Testing Spring RestTemplate for making multipart request on Android测试 Spring RestTemplate 以在 Android 上发出多部分请求
【发布时间】:2018-01-06 22:05:43
【问题描述】:

我已经研究了一段时间,但没有找到合适的方法来使用 Spring RestTemplate 对来自 Android 的多部分请求进行单元测试。有什么建议吗? 我需要模拟服务器才能获得图像和 json。然后,我将在没有这些参数之一的情况下测试我的请求等。 这样做最简单的方法是什么? 到目前为止,我一直在尝试使用 MockRestServiceServer 类来模拟服务器,但找不到让它期望参数的方法。 希望你的好意。 这是我要测试的请求:

MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<String,Object>();

        HttpHeaders header = new HttpHeaders();
        header.setContentType(MediaType.MULTIPART_FORM_DATA);
        header.add("Authorization",value);

        // creating an HttpEntity for the JSON part
        HttpHeaders jsonHeader = new HttpHeaders();
        jsonHeader.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<String> jsonHttpEntity = new HttpEntity<>(json_data, jsonHeader);

        // creating an HttpEntity for the binary part
        HttpHeaders pictureHeader = new HttpHeaders();
        pictureHeader.setContentType(MediaType.IMAGE_JPEG);
        HttpEntity<FileSystemResource> picturePart = new HttpEntity<>(new FileSystemResource(message_data.photo_uri), pictureHeader);

        multipartRequest.add("picPart",picturePart);
        multipartRequest.add("jsonPart",jsonHttpEntity);

        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(multipartRequest, header);

        String result = restTemplate.postForObject(message_data.server_url, requestEntity, String.class);

【问题讨论】:

    标签: java android unit-testing resttemplate


    【解决方案1】:

    对于模拟 Rest 控制器类,您可以使用:
    1)MockMvc:https://docs.spring.io/spring-security/site/docs/current/reference/html/test-mockmvc.html
    2) 放心:http://rest-assured.io/ 3)WireMock

    模拟整个服务器:
    1)WireMock:http://wiremock.org/

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多