我正在为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-beta
春天:4.2.4
编辑:我认为问题是Elasticsearch库。我使用的是Elasticsearch 1.5.2;当我切换到2.2.0时,问题就消失了。不幸的是,这对我没有帮助,因为我正在谈论的集群在1.5.2上运行。
答案 0 :(得分:0)
在我的情况下,问题是我也使用Elasticsearch 1.5.2作为我的库之一。 Mockito和Elasticsearch版本在2.0之前存在一个错误,其中Mockito不起作用(参见https://github.com/mockito/mockito/issues/341)。