如何将TestRestTemplate与分页响应一起使用?

时间:2018-06-28 16:00:28

标签: java spring rest integration-testing

我有一个带有方法的控制器,该方法返回分页的资源,如下所示:

@RestController
@RequestMapping(path = "/audit")
public class AuditController {
    @RequestMapping(
            method = RequestMethod.GET,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public Page<AuditEventDetails> getAuditEvents(Pageable page) {
        if (page == null) {
            page = PageRequest.of(0, 20);
        }
        return service.findAll(page);
    }
}

我的其他集成测试使用TestRestTemplate成功调用此REST服务中的方法。但是,我必须指定响应类型为String才能从分页方法中获取响应:

rest.exchange("/audit", HttpMethod.GET, HttpEntity.EMPTY, String.class);

如果我尝试使用PagePageImpl<>作为响应类型,则会收到无法实例化该类的错误:

ParameterizedTypeReference<Page<AuditEventDetails>> typeReference = new ParameterizedTypeReference<Page<AuditEventDetails>>() {};
ResponseEntity<Page<AuditEventDetails>> response = rest.exchange("/audit", HttpMethod.GET, HttpEntity.EMPTY, typeReference);

使用TestRestTemplate检索分页响应的正确方法是什么?

0 个答案:

没有答案