«1. Обзор

Mockito — популярный фреймворк для создания макетов для Java. Но прежде чем мы начнем, у нас есть несколько разных артефактов на выбор.

В этом кратком руководстве мы рассмотрим разницу между mockito-core и mockito-all. После этого мы сможем выбрать правильный.

2. mockito-core

Артефакт mockito-core — главный артефакт Mockito. В частности, он содержит как API, так и реализацию библиотеки.

Мы можем получить артефакт, добавив зависимость в наш pom.xml:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.3.3</version>
</dependency>

На этом этапе мы уже можем начать использовать Mockito.

3. mockito-all

Конечно, mockito-core имеет некоторые зависимости, такие как hamcrest и objenesis, которые Maven загружает отдельно, но mockito-all — это устаревшая зависимость, которая объединяет Mockito, а также его необходимые зависимости.

Чтобы убедиться в этом, давайте заглянем внутрь mockito-all.jar, чтобы увидеть содержащиеся в нем пакеты:

mockito-all.jar
|-- org
|   |-- hamcrest
|   |-- mockito
|   |-- objenesis

Последняя общедоступная версия mockito-all — это версия 1.x, выпущенная в 2014 году. Более новые версии Mockito больше не выпускает mockito-all.

Разработчики выпустили эту зависимость для упрощения. Разработчики должны были использовать это, если у них нет инструмента сборки с управлением зависимостями.

4. Заключение

Как мы выяснили выше, mockito-core — главный артефакт Mockito. Более новые версии больше не выпускают mockito-all. Отныне мы должны использовать только mockito-core.