2017-11-26 8 views
0

데이터를 반환하지 않습니다, 나는 몇 가지 기본 데이터를 삽입하는 API 내 테스트가 초기화됩니다 후에, 나는이 API를 호출 실행을봄 나머지 템플릿 내 봄 응용 프로그램에 대한 통합 테스트를 작성하는 것을 시도하고있다

@PostConstruct 
public void inti() { 
    ResponseEntity<String> response = restTemplate.getForEntity("/api/default", String.class); 
    assertEquals("Default values are not inserted successfully", "lala", response.getBody()); 
} 

이 전달 된 및 데이터베이스 기본 값을 볼 수 있습니다. 내 테스트에서

나는 일부 데이터를 가져 오기 위해 노력하지만 수동으로 API를 테스트하고이
@Test 
public void shouldReturnDeliveryNotes() { 
    ResponseEntity<PagedResources<DeliveryNote>> allDeliveryNotes = restTemplate.exchange("/api/deliverynotes/all?start=0&length=1000",HttpMethod.GET,null, new ParameterizedTypeReference<PagedResources<DeliveryNote>>() {}); 
    assertNotEquals("Should have default delivery notes", 0, allDeliveryNotes.getBody().getContent().size()); 
} 

작업 내가 반환 된 데이터의 크기를 확인하기 위해 API의 일부 로그를두고 있지만 반환 된 데이터는 0 I 테스트가 실행될 때 반환 된 데이터를 확인합니다. 이는 내 테스트가 올바른 API를 치고 API가 데이터를 가져 오는 것을 의미합니다.

@GetMapping("/all") 
public ResponseEntity<Page<DeliveryNoteDTO>> getAllDeliveryNote(@RequestParam(value = "start", required = false) int start, @RequestParam(value ="length", required = false) int length) { 
    Pageable pageable = new OffsetBasedPageRequest(start, (length ==0? Integer.MAX_VALUE: length)); 
    List<DeliveryNote> page = this.deliveryNoteService.getAllDeliverNotes(); 
    List<DeliveryNoteDTO> dtoList =page.stream().map(post -> convertToDto(post)).collect(Collectors.toList()); 
    Page<DeliveryNoteDTO> pageDto = new PageImpl<>(dtoList, pageable, dtoList.size()); 
    System.out.println("size = "+pageDto.getNumberOfElements()); 
    return new ResponseEntity<Page<DeliveryNoteDTO>>(pageDto,HttpStatus.OK); 
} 

어떤 도움이

을 감사
+0

저는 restTemplate에서 약간 녹슬지 만, 똑같은 것을 String이나 String List를 리턴하려고 시도 할 것입니다. 어떤 이유로 든 POJOS처럼 동작하지 않는 객체에 문제가 있는지 또는 문제의 나머지 템플릿인지 여부를 알려줍니다. –

+0

getAllDleveriyNote에서 Paged 를 리턴하지만 테스트에서 PagedResources 를 찾으십시오. 이것은 의도 된 것입니까? –

+0

@SeanCarroll PageImpl을 확장하고 새 생성자를 정의하여 문제가 해결되었지만 불행하게도 page와 pageImpl에 기본 생성자가 포함 된 리소스로 직렬화해야했습니다. –

답변

0

내 restTemplate에 내가 PagedResources을 기대하고있는 동안 나는 페이지를 반환하고 있습니다 문제는, 그냥 페이지를 반환 나을하지만 구체적인 클래스가 필요, 나는 PageImpl을 사용 하지만 문제는 RestTemplate 응답을 매핑하는 데 사용하는 PageImple는 기본 생성자가없는 것입니다, 내가 한 그래서 나는 새로운 클래스를 생성하고이 질문에

Spring RestTemplate with paginated API

의 허용 대답에 언급 된 것처럼 PageImpl 확장