如何模拟RestTemplate

时间:2019-06-09 09:57:29

标签: java spring spring-boot

我已经设置了RestTemplate来从网址中收集数据。

我的要求是测试,更重要的是测试序列化程序,因此,给定了一段JSON,我如何测试所有值是否正确传递到商家实例。

我不知道RestTemplate使用哪个序列化程序将JSON序列化为对象。

RestTemplate template = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> request = new HttpEntity<>("", headers);
ResponseEntity<InboundMerchants> result = template.exchange(
        String.format("%s%s", uri, url),
        HttpMethod.GET,
        request,
        InboundMerchants.class);

InboundMerchants merchants = result.getBody();
return merchants == null
        ? Lists.newArrayList()
        : merchants.getMerchants();

1 个答案:

答案 0 :(得分:1)

对于单元测试,如果您使用的是Spring,则可以使用Mockito,请检查此教程: https://www.baeldung.com/spring-mock-rest-template

对于集成测试(我认为您的要求),您可以同时使用RestTemplate和MockMvc,请检查此线程:

Difference between MockMvc and RestTemplate in integration tests