Я пишу UnitTest, где мне нужно смоделировать DynamoDBMapper.scan (класс 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: это неизменяемый список», вероятно, потому что я не могу ничего добавить в этот список.Но если я не могу добавить к этому, то как я могу проверить этот конкретный сценарий?