Как я могу определить, является ли объект макетом Mockito? - PullRequest
60 голосов
/ 27 января 2012

Можно ли в коде определить, является ли данный объект макетом Mockito или нет?

Причина, по которой я хотел бы сделать это, - возвращать другое сообщение об ошибке при использовании макета.Это будет использовано для того, чтобы предложить другим разработчикам использовать заранее подготовленный макет, который уже готов отвечать на вызовы полезным способом, а не создавать его самостоятельно.

На данный момент лучшее, что у меня есть, этоobject.getClass().getName().contains("EnhancerByMockitoWithCGLIB") но это кажется хаком.

Ответы [ 2 ]

59 голосов
/ 27 января 2012

Похоже, что такого API нет (пожалуйста, поднимите вопрос, оно должно быть!) К счастью (после вашего комментария ниже) в пакете org.mockito.internal.util есть метод:

import org.mockito.internal.util.MockUtil;

new MockUtil().isMock(obj)

Вметод future Mockito.isMock() может быть добавлен к общедоступному API, см. Проблема 313. Предоставление isMock вне org.mockito.internal) .

44 голосов
/ 28 февраля 2013

В качестве продолжения, публичный API Mockito теперь имеет следующий метод:

MockingDetails org.mockito.Mockito.mockingDetails(Object toInspect)

Что является результатом проблемы, которую поднял @David Wallace. Возвращенный объект поддерживает методы «isMock ()», а также «isSpy ()» и впоследствии может быть улучшен для предоставления большего количества информации, связанной с ложным сообщением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...