Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Руководство: использование Mockito для инъекций в JUnit 5

Быстрый ответ

Для быстрой интеграции Mockito в JUnit 5, добавьте в проект зависимость mockito-junit-jupiter. Для использования аннотаций Mockito в тестах JUnit 5, примените аннотацию @ExtendWith(MockitoExtension.class). Вот ключевые моменты:

Java
Скопировать код
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
class QuickTest {

    @Mock
    MyComponent component; // Ваш надежный подспорье в мире тестирования

    @Test
    void verifyComponentAction() {
        when(component.act()).thenReturn("Done"); // При вызове всегда возвращает "Done"

        assertEquals("Done", component.act()); // Убеждаемся, что метод работает как ожидалось
        verify(component).act(); // Проверяем, был ли метод действительно вызван
    }
}

Создавайте моки с легкостью с помощью @Mock, имитируйте поведение методов с помощью when().thenReturn() и проверяйте взаимодействия с помощью verify(). Благодаря этому, процесс тестирования с Mockito и JUnit 5 становится быстрее и проще.

Кинга Идем в IT: пошаговый план для смены профессии

Процесс перехода: от JUnit 4 к JUnit 5

Переводя тесты с JUnit 4 на JUnit 5, учитывайте, что правила и исполнители JUnit 4 не совместимы с JUnit 5. Используйте @ExtendWith вместо @RunWith для интеграции функционала Mockito. Обязательно проверяйте, что моки созданы правильно. Только тогда вы сможете в полной мере использовать возможности расширений JUnit 5.

Искусство создания моков

Особое значение имеет выбор способа внедрения зависимостей – от него во многом зависит результат. Если вы отдаете предпочтение конструкторам, вместо инжекции через поля с @Mock, воспользуйтесь @InjectMocks. Таким образом, Mockito будет автоматически создавать тестовые объекты, делая код тестов более коротким и понятным.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Настраивайте свою тестовую среду!

MockitoExtension предлагает обширную функциональность, однако, если вам это мало, создайте собственное расширение, реализовав соответствующие обратные вызовы JUnit 5 (BeforeAllCallback, BeforeEachCallback и другие). Это позволит вам гибко настраивать тестовую среду.

Визуализация

Подготовка тестов в JUnit 5 подобна подготовке к представлению:

Markdown
Скопировать код
Сцена JUnit 5 (🎭): [Тестовые случаи]
Актеры Mockito (👥): [Моки]

Затем объедините эти элементы с помощью аннотаций и методов, что обеспечит идеальное выполнение:

Markdown
Скопировать код
@BeforeEach 🛠️ -> Подготовка сцены
@Test 🎬 -> Начало действия
@Mock 🤝 -> Вход персонажей
@ExtendWith(MockitoExtension.class) 🎟️ -> Приглашение для Mockito

Проведите тест с таким же тщательным подходом, как если бы вы репетировали пьесу!

Структурирование вашего теста

Добивайтесь изоляции тестов. Избегайте использования иерархии наследования, которое может привести к хрупким тестам. Сконцентрируйтесь на применении расширений JUnit 5 для создания эффективных и легко поддерживаемых тестов.

Знакомство Kotlin и Mockito

Работая с Kotlin, по максимуму используйте lateinit с @Mock для отложенной инициализации моков в тестах JUnit 5. Сохраняйте изящество и экспрессивность кода Kotlin.

Концепция теста JUnit 5

Стремитесь к изоляции тестов. Сократите зависимость ваших тестов от базовой конфигурации класса до минимума и используйте расширения для создания гибких тестов. Обратите внимание на правильное использование @ExtendWith и @Mock, чтобы инъекция моков производилась без проблем.

Полезные материалы

  1. Mockito Extension – mockito-junit-jupiter 5.10.0 javadocофициальная документация по интеграции Mockito в JUnit 5.
  2. Руководство пользователя JUnit 5 — детальное руководство по использованию расширений JUnit 5, включая Mockito.
  3. GitHub – mockito/mockito — прекрасный источник примеров использования Mockito, а также последних обновлений и фиксов ошибок.
  4. Первые шаги | Тестирование веб-слоя — практическое руководство по тестированию в Spring Framework с использованием JUnit 5 и Mockito.
  5. Модульные тесты с Mockito – Учебник — учебник от Vogella по настройке и использованию Mockito для модульного тестирования.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какова основная аннотация для интеграции Mockito с JUnit 5?
1 / 5
Свежие материалы