Не умеет издеваться над PaginatedScanList (вернуть объект сканирования DynamoDB) - PullRequest
0 голосов
/ 02 апреля 2019

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

...