我正在编写一个UnitTest,我需要在其中模拟dynamoDBMapper.scan(Class clazz,DynamoDBScanExpression scanExpression)以返回PaginatedScanList
现在,我希望此列表包含一个对象,以便以后可以断言该列表是否包含正确的字段。
Mockito.when(
dynamoDbMapper.scan(eq(ABC.class), argThat(new ArgumentMatcher<DynamoDBScanExpression>() {
@Override
public boolean matches(Object argument)
{
DynamoDBScanExpression scanExp = (DynamoDBScanExpression) argument;
return true;
}
}))).thenReturn((PaginatedScanList<ABC>) prepareScanResponse());
List<ABC> listReturned = methodClass.methodToTest(field1,
field2);
Assert.assertNotNull(listReturned);
Assert.assertNotNull(listReturned.get(0));
Assert.assertTrue(listReturned.get(0).field1);
在上面的代码中,我试图模拟DynamoDB.scan调用,并返回一个PaginatedScanList,其中存储了一个对象。 然后,稍后当我调用“ methodToTest”时,它将执行其it语句并返回PaginatedScanList,并且它应声明其余的语句。 我得到的错误是: “ java.lang.UnsupportedOperationException:这是不可修改的列表” 可能是因为我无法在此列表中添加任何内容。 但是,如果我不能添加它,那么如何测试这种特殊情况呢?