2016-06-30 10 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.any() вместо Mockito.eq().

Во-вторых, я не понимаю, почему вы хотели бы издеваться над этим списком. Вы можете просто создать и вернуть его

// 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)); 
} 
Смежные вопросы