2017-11-26 10 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()); 
} 

作業が、私は、返されたデータのサイズと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); 
} 

すべてのヘルプは

+0

私はrestTemplateでちょっと錆びていますが、同じことをStringやList of Stringsだけを返すようにしようと思います。これは、何らかの理由でPOJOSのように動作しないオブジェクトに問題があるか、それが問題の残りのテンプレートであるかどうかを示します。 –

+0

getAllDleveriyNoteでは、Paged を返しますが、テストではPagedResources を探しています。これは意図されていますか? –

+0

@SeanCarroll PageImplを拡張して問題を修正し、新しいコンストラクタを定義したにもかかわらず、デフォルトのコンストラクタ、unfortunatly pageおよびpageImplにリソースを直列化する必要がありました –

答えて

0

を高く評価している問題は、私のrestTemplateに私はPagedResourcesを期待していながら、私はページを返しています、それだけでページを返すために理にかなっているが、私は具象クラスを必要とする、私はPageImplを使用しますしかし、問題は、私は、私は新しいクラスを作成し、この質問

Spring RestTemplate with paginated API

の受け入れ答えで述べたのと同様PageImplを延長しなかったので、何を、PageImpleはRestTemplateが応答をマッピングするために使用するデフォルトコンストラクタを持っていないということです
関連する問題