Что это простыми словами
Mockito — это инструмент, который помогает разработчикам проверять, правильно ли работает код, не запуская при этом всю систему целиком.
Аналогия: представьте, что вы тестируете кассира в супермаркете. Вместо того чтобы завезти настоящий товар, нанять поставщиков и включить всю логистику, вы просто кладёте на прилавок муляжи — картонные коробки с ценниками. Кассир сканирует их и выбивает чек — и вы проверяете, правильно ли он считает сумму. Mockito делает именно это для кода: создаёт «муляжи» других частей программы, чтобы проверить конкретный кусочек в изоляции.
Такие муляжи разработчики называют «моками» (от английского mock — подделка). Отсюда и название библиотеки.
Официальное определение
Теперь, когда суть понятна, вот как Mockito описывают в вакансиях и документации. Эту формулировку вы встретите у заказчика и в резюме — и теперь будете понимать, что за ней стоит.
«Mockito — фреймворк для модульного тестирования на Java, позволяющий создавать mock-объекты и задавать их поведение для изоляции тестируемого кода от внешних зависимостей».
Разберём по словам. «Модульное тестирование» — это проверка одного маленького кусочка программы отдельно от всего остального, как тест одной детали на заводе, а не всей машины целиком. «Mock-объекты» — те самые муляжи-подделки, которые имитируют поведение настоящих частей системы. «Изоляция от внешних зависимостей» значит, что тест не обращается к базе данных, интернету или другим сервисам — всё это заменяют муляжи.
Какую задачу решает
Программа состоит из множества частей, которые зависят друг от друга. Чтобы проверить одну часть, пришлось бы запускать и все остальные — а это долго, сложно и ненадёжно. Что если база данных недоступна? Что если сторонний сервис вернул ошибку? Mockito решает эту проблему: он подставляет вместо реальных частей управляемые «двойники», которые ведут себя именно так, как нужно для конкретного теста.
Благодаря этому тесты работают быстро, предсказуемо и без внешних систем. Разработчик может запустить тысячи проверок за несколько секунд прямо на своём компьютере — и сразу увидеть, где что-то сломалось.
К какой экосистеме относится
Язык — Java (реже Kotlin, который работает на той же платформе).
Специальность — backend-разработчик на Java.
Используется вместе с — почти всегда в паре с JUnit 5: JUnit — это «скелет» теста (запускает проверки и считает результаты), а Mockito — инструмент внутри этого скелета для создания муляжей. Они не заменяют друг друга, а работают вместе.
Фреймворк проекта — чаще всего встречается в проектах на Spring. Spring Boot даже включает Mockito «из коробки» в своём наборе для тестирования.
Чем заменяется
В мире Java-тестирования у Mockito есть несколько аналогов:
EasyMock — более старая библиотека для тех же муляжей, встречается в старых проектах.
PowerMock — расширение поверх Mockito для особых случаев, когда нужно «замокировать» статические методы (специфика языка, рекрутеру знать детали не нужно). Используется вместе с Mockito, а не вместо него.
TestNG — альтернатива JUnit (то есть «скелету» теста), но не замена Mockito напрямую. Mockito спокойно работает и с TestNG.
Главное: переход между этими инструментами дешёвый. Разработчик, который работал с одной библиотекой для моков, разберётся в другой за считаные дни — идея везде одна и та же.
Что не путать
Mockito ≠ JUnit. JUnit запускает тесты и проверяет результаты, Mockito создаёт муляжи внутри этих тестов. Они работают вместе: увидев оба в резюме, знайте — это норма, а не дублирование.
Mockito ≠ WireMock. WireMock имитирует целый внешний сервис по сети (как подделка целого сайта), а Mockito работает внутри кода программы. Это разные уровни «обмана» для разных задач.
Mockito ≠ Testcontainers. Testcontainers запускает настоящую базу данных или сервис в изолированной «коробке» (контейнере) для реалистичного теста. Mockito, наоборот, заменяет базу данных муляжом и к реальным системам вообще не обращается.
Mockito — не часть Java как языка. Это отдельная библиотека, которую подключают к проекту. Знание Java не означает автоматическое знание Mockito.
Насколько это важно при отборе
Короткий ответ: обычно это НЕ повод отбраковывать кандидата.
Mockito — де-факто стандарт для модульного тестирования в Java-мире, и большинство опытных Java-разработчиков с ним знакомы. Но если в резюме указан EasyMock или другой аналог вместо Mockito — это не тревожный сигнал. Разработчик освоит Mockito за несколько дней, потому что принцип работы с моками везде один.
На что стоит обратить внимание: если в вакансии требуется опыт написания тестов, а в резюме кандидата нет вообще никаких упоминаний тестирования — ни Mockito, ни JUnit, ни любого другого инструмента — это повод спросить, как он тестировал свой код в прошлых проектах. Отсутствие культуры тестирования у кандидата важнее, чем название конкретной библиотеки.
Это общий ориентир. В разных компаниях требования отличаются, поэтому всегда сверяйтесь с текстом конкретной вакансии.