Программисты JAVA общаются здесь
Anonymous
Как протестировать запрос динамо с помощью QueryEnhancedRequest с Junit
Сообщение
Anonymous » 06 янв 2025, 23:10
У меня возникли проблемы с написанием JUnits для моего запроса DynamoDB. Вот исходный код:
Код: Выделить всё
PageIterable pages = table.query(queryEnhancedRequest);
for(Page page : pages) {
if(page.items() != null) {
tableItems.addAll(page.items());
}
}
Мой тест выглядит так:
Код: Выделить всё
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import software.amazon.awssdk.enhanced.dynamodb.DynamoDBTable;
import software.amazon.awssdk.enhanced.dynamodb.Page;
import software.amazon.awssdk.enhanced.dynamodb.PageIterable;
import software.amazon.awssdk.enhanced.dynamodb.QueryEnhancedRequest;
@RunWith(MockitoJUnitRunner.class)
public class AccountRepositoryTest {
@Mock
private DynamoDbTable myTable;
@Mock
private PageIterable pages;
@Mock
private Iterator iterator;
@Mock
private Page page;
@Test
public void testGetAccountData_Success() {
when(myTable.query(queryEnhancedRequest)).thenReturn(pages);
when(pages.iterator()).thenReturn(iterator);
when(iterator.hasNext()).thenReturn(true, false);
when(iterator.next()).thenReturn(page);
...
Mockito заявляет, что не может издеваться над Пейджем, потому что «Mockito не может издеваться/шпионить, потому что: Final class».
Подробнее здесь:
https://stackoverflow.com/questions/793 ... with-junit
1736194251
Anonymous
У меня возникли проблемы с написанием JUnits для моего запроса DynamoDB. Вот исходный код: [code]PageIterable pages = table.query(queryEnhancedRequest); for(Page page : pages) { if(page.items() != null) { tableItems.addAll(page.items()); } } [/code] Мой тест выглядит так: [code]import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import software.amazon.awssdk.enhanced.dynamodb.DynamoDBTable; import software.amazon.awssdk.enhanced.dynamodb.Page; import software.amazon.awssdk.enhanced.dynamodb.PageIterable; import software.amazon.awssdk.enhanced.dynamodb.QueryEnhancedRequest; @RunWith(MockitoJUnitRunner.class) public class AccountRepositoryTest { @Mock private DynamoDbTable myTable; @Mock private PageIterable pages; @Mock private Iterator iterator; @Mock private Page page; @Test public void testGetAccountData_Success() { when(myTable.query(queryEnhancedRequest)).thenReturn(pages); when(pages.iterator()).thenReturn(iterator); when(iterator.hasNext()).thenReturn(true, false); when(iterator.next()).thenReturn(page); ... [/code] Mockito заявляет, что не может издеваться над Пейджем, потому что «Mockito не может издеваться/шпионить, потому что: Final class». Подробнее здесь: [url]https://stackoverflow.com/questions/79334218/how-to-test-dynamo-query-with-queryenhancedrequest-with-junit[/url]