При модульном тестировании обычно используются двойники тестов, например макеты, для имитации зависимостей и управления их поведением. Mockito — это популярная платформа для создания макетов для Java, предоставляющая мощные функции для создания макетов и работы с ними. В этой статье мы углубимся в возможности Mockito по созданию списков и рассмотрим несколько методов на примерах кода.
- Создание фиктивного списка:
Чтобы создать фиктивный список с помощью Mockito, вы можете использовать методmock()
и указать желаемый интерфейс или класс списка. Вот пример:
List<String> mockedlist = Mockito.mock(List.class);
- Вызовы методов списка заглушек:
Mockito позволяет заглушать вызовы методов в имитируемом списке, определяя желаемое поведение. Например, вы можете определить возвращаемое значение для определенного вызова метода, используя синтаксисwhen().thenReturn()
. Вот пример:
List<String> mockedlist = Mockito.mock(List.class);
Mockito.when(mockedlist.size()).thenReturn(5);
System.out.println(mockedlist.size()); // Output: 5
- Проверка вызовов методов списка.
Вы также можете проверить, были ли вызваны определенные методы из имитируемого списка во время теста. Для этой цели Mockito предоставляет методverify()
. Вот пример:
List<String> mockedlist = Mockito.mock(List.class);
mockedlist.add("Item");
Mockito.verify(mockedlist).add("Item"); // Verifies that 'add' method was called with argument "Item"
- Вызов исключений.
Mockito позволяет создавать исключения при вызове определенных методов в имитируемом списке. Этого можно добиться, используя синтаксисdoThrow()
. Вот пример:
List<String> mockedlist = Mockito.mock(List.class);
Mockito.doThrow(new RuntimeException()).when(mockedlist).clear();
mockedlist.clear(); // Throws a RuntimeException
- Поведение списков насмешек с сопоставлениями:
Mockito предоставляет средства сопоставления, которые позволяют вам указать более гибкое сопоставление аргументов. Например, вы можете использовать средство сопоставленияanyInt()
для сопоставления любого целочисленного аргумента. Вот пример:
List<String> mockedlist = Mockito.mock(List.class);
Mockito.when(mockedlist.get(Mockito.anyInt())).thenReturn("MockedItem");
System.out.println(mockedlist.get(1)); // Output: "MockedItem"
Mockito — это мощная среда создания макетов, упрощающая создание и манипулирование макетами объектов. В этой статье мы рассмотрели несколько методов создания макетов списков с использованием Mockito, включая создание макетов, заглушку вызовов методов, проверку вызовов, выдачу исключений и использование сопоставлений. Используя эти методы, вы можете эффективно протестировать код, взаимодействующий со списками, и обеспечить желаемое поведение.