データを返していない、私はいくつかのデフォルトのデータを挿入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());
}
作業が、私は、返されたデータのサイズとIを参照するAPIのいくつかのログを入れて0でありますテストが実行されたときに返されるデータを確認します。これは、私のテストが正しい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);
}
すべてのヘルプは
私はrestTemplateでちょっと錆びていますが、同じことをStringやList of Stringsだけを返すようにしようと思います。これは、何らかの理由でPOJOSのように動作しないオブジェクトに問題があるか、それが問題の残りのテンプレートであるかどうかを示します。 –
getAllDleveriyNoteでは、Pagedを返しますが、テストではPagedResources を探しています。これは意図されていますか? –
@SeanCarroll PageImplを拡張して問題を修正し、新しいコンストラクタを定義したにもかかわらず、デフォルトのコンストラクタ、unfortunatly pageおよびpageImplにリソースを直列化する必要がありました –