Java 如何模拟DynamoDB批量保存?

Java 如何模拟DynamoDB批量保存?,java,unit-testing,junit,mockito,amazon-dynamodb,Java,Unit Testing,Junit,Mockito,Amazon Dynamodb,我编写了dynamoDB代码来存储项目列表 mapper.batchSave(trafficSensorReadings) 这会回来的 List<FailedBatch> 首先,我认为您可能需要使用Mockito.any()而不是Mockito.eq() 其次,我不明白你为什么要嘲笑这份名单。您可以创建一个并返回它 // GIVEN FailedBatch batch1 = /**/; FailedBatch batch2 = /**/; List<FailedBatch&

我编写了dynamoDB代码来存储项目列表

mapper.batchSave(trafficSensorReadings)
这会回来的

List<FailedBatch>

首先,我认为您可能需要使用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失败=/**/;
失败批次2=/**;
List failedBatchList=Lists.newArrayList(batch1,batch2);
//什么时候
当(dynamoDBMapper.batchSave(any(List.class)),然后返回(failedBatchList);
Object someResult=yourFunctionTestCall();
//然后
验证(某些结果)。。。

下面是一个完整的示例

@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));
}
@测试
公开无效测试(){
FailedBatch FailedBatch=mock(FailedBatch.class);
List failedBatchList=新建ArrayList();
failedBatchList.add(failedBatch);
DynamoDBMapper dynamoDBMapperMock=mock(DynamoDBMapper.class);
当(dynamoDBMapperMock.batchSave(any(List.class)),然后返回(failedBatchList);
tested.testedMethodCall();
验证(dynamoDBMapperMock).batchSave(any(List.class));
}
@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));
}