2016-06-30 1 views
1

항목 목록을 저장하는 dynamoDB 코드를 작성했습니다.DynamoDB 배치 저장 방법을 모방하는 방법은 무엇입니까?

mapper.batchSave(trafficSensorReadings) 

반환합니다.

List<FailedBatch> 

mapper.batchSave를 조롱하고 실패한 작업 하나를 반환하고 싶습니다. 그것을 어떻게 성취 할 수 있습니까? 나는 mockito와 Junit을 사용하고 있습니다.

다음과 같이 작성했습니다. 그러나 유용하지 않습니다.

 when(dynamoDBMapper.batchSave(eq(List.class))).thenReturn(mock(List.class)); 

답변

0

먼저 Mockito.eq() 대신 Mockito.any()를 사용하는 것이 좋습니다.

두 번째로 목록을 조롱하고 싶은 이유가 없습니다. 당신은 하나를 생성하고이

// GIVEN 
FailedBatch batch1 = /**/; 
FailedBatch batch2 = /**/; 
List<FailedBatch> failedBatchList = Lists.newArrayList(batch1, batch2); 

// WHEN 
when(dynamoDBMapper.batchSave(any(List.class))).thenReturn(failedBatchList); 

Object someResult = yourFunctionTestCall(); 

// THEN 
verify(someResult)... 
1

완벽한 예

@Test 
public void test() { 
    FailedBatch failedBatch = mock(FailedBatch.class); 
    List<FailedBatch> failedBatchList = new ArrayList<>(); 
    failedBatchList.add(failedBatch); 
    DynamoDBMapper dynamoDBMapperMock = mock(DynamoDBMapper.class); 
    when(dynamoDBMapperMock.batchSave(any(List.class))).thenReturn(failedBatchList); 

    tested.testedMethodCall(); 

    verify(dynamoDBMapperMock).batchSave(any(List.class)); 
} 
을 다음과 반환 할 수 있습니다
관련 문제