如何模拟DynamoDB批量保存



我编写了dynamoDB代码,用于存储项目列表。

mapper.batchSave(trafficSensorReadings)

这将返回。

List<FailedBatch>

我想嘲笑映射器。batchSave,然后返回一个失败的作业。我怎样才能实现它?我正在使用mockito和Junit。

我写了这样的东西。但是没有用。

        when(dynamoDBMapper.batchSave(eq(List.class))).thenReturn(mock(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));
}

首先,我认为您可能希望使用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)...

相关内容

  • 没有找到相关文章

最新更新