2016-07-17 4 views
1

Я пишу модульные тесты для обертки JestClient. Я пытаюсь использовать Mockito для имитации JestClient, но я получаю следующее сообщение об ошибке:Mockito не может издеваться над этим классом JestClient

Mockito cannot mock this class: interface io.searchbox.client.JestClient 

Mockito can only mock visible & non-final classes. 
If you're not sure why you're getting this error, please report to the mailing list. 

Вот как я определяю макет:

@Bean(name = Identifiers.JEST_CLIENT) 
@Profile(Identifiers.PROFILE_UNIT_TEST) 
public JestClient getJestClient() { 
    JestClient client = Mockito.mock(JestClient.class); 
    return client; 
} 

Я не знаю, почему Я получаю сообщение об ошибке, поскольку JestClient - это просто интерфейс. Я использую:

Jest: 0.1.6

Mockito: 2.0.36-бета

Spring: 4.2.4

EDIT: Я думаю, что вопрос является библиотека Elasticsearch. Я использовал Elasticsearch 1.5.2; когда я переключился на 2.2.0, проблема исчезла. К сожалению, это не помогает мне, так как кластер, с которым я разговариваю, работает на 1.5.2.

+0

Добавить полный стек. Кажется, это ошибка, или вы не включаете достаточно библиотек. –

+0

Я думаю, что проблема Elasticsearch 1.5.2. Когда я обновил свои библиотеки, чтобы использовать 2.2.0, ошибка исчезла. К сожалению, кластер, с которым я разговариваю, использует 1.5.2, и несколько классов, которые я использовал, были удалены. – alexgbelov

ответ

0

В моем случае проблема заключалась в том, что я также использовал Elasticsearch 1.5.2 в качестве одной из моих библиотек. Существует ошибка с версиями Mockito и Elasticsearch до 2.0, где Mockito не будет работать (см. https://github.com/mockito/mockito/issues/341).

Смежные вопросы