2017-11-13 8 views
0

私は春のブートプロジェクトで春データjpaを使用しています。模擬予測結果春データJPA

私はJPQLクエリを実行し、プロジェクションを使用してクエリの結果を格納しています。 マイ投影:この投影を呼び出す

public interface VeryBasicProjection { 
    String getTitle(); 
    String getUrl(); 
} 

マイサービス:

public List<VeryBasicDTO> getLatestData(int limit){ 

     // Pageable for Limit 
     Pageable pageable = new PageRequest(0, limit); 

     // Get Data from DB 
     List<VeryBasicProjection> latestData = tableRepository.getLatestData("live", 2,pageable); 
     List<VeryBasicDTO> responseDTO = new ArrayList<>(); 

     // Map Projection to DTO 
     for(VeryBasicProjection veryBasicProjection : latestData){ 
      VeryBasicDTO veryBasicDTO = new VeryBasicDTO(); 
      veryBasicDTO.buildDTO(veryBasicProjection); 
      responseDTO.add(veryBasicDTO); 
     } 

     return responseDTO; 
    } 

今私はMockito(ユニットテストケース) を使用してこのサービスをテストしたい私はときを使用してリポジトリ への呼び出しをからかっていますし、 then return。

私の質問は、リポジトリの結果をどうやって模擬しているのですか?何が復帰するべきか?私はどのように投影のインスタンスとそれにsetDataを作成するのですか?

我々は、オブジェクトの2種類嘲笑

まず、以下の方法で同じものを実装している

+0

インターフェイスを実装するクラスを作成するか、Mockitoを使用してインターフェイスのモックインスタンスを作成します。 –

答えて

0

@Mock 
private EntityManager em; 

@Mock 
private DemoProjectRepo demoProjectRepo; 

マイdemoProjectRepo.findByAll戻りList<DemoProjectDevices>

DemoProjectDevices device1 = new DemoProjectDevices(); 
device1.setAcctNbr("2365897412236589"); 
device1.setdeviceSeq(new BigDecimal(1)); 
device1.setCrteTms("2017-07-29 01:21:44.910807"); 
List<DemoProjectDevices> demoProjectDevices = new ArrayList<DemoProjectDevices>(); 
demoProjectDevices.add(device1); 

その後、モックとの場合:

Mockito.when(demoProjectRepo.findByAll("2365897412236589", em)).thenReturn(demoProjectDevices); 
関連する問題