Объект Mock используется для модульного тестирования. Если у вас есть объект, методы которого вы хотите проверить, и эти методы зависят от какого-то другого объекта, вы создаете макет зависимости, а не фактический экземпляр этой зависимости. Это позволяет вам тестировать ваш объект изолированно.
Общие Java-инфраструктуры для создания фиктивных объектов включают JMock и EasyMock . Как правило, они позволяют создавать фиктивные объекты, поведение которых вы можете определить, так что вы точно знаете, чего ожидать (насколько возвращаются значения и побочные эффекты) при вызове методов для фиктивного объекта.
В качестве примера, один общий случай использования может быть в приложении MVC, где у вас есть уровень DAO (объекты доступа к данным) и контроллер, который выполняет бизнес-логику. Если вы хотите выполнить модульное тестирование контроллера, и у контроллера есть зависимость от DAO, вы можете сделать макет DAO, который будет возвращать фиктивные объекты вашему контроллеру.
Одна вещь, на которую важно обратить внимание, заключается в том, что обычно фиктивные объекты реализуют тот же интерфейс, что и объекты, которые они имитируют - это позволяет вашему коду иметь дело с ними через тип интерфейса, как будто они являются экземплярами реальная вещь.