【发布时间】: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