Mockito无法模拟这个类JestClient

时间:2016-07-17 03:29:48

标签: java unit-testing mockito jestjs

我正在为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上运行。

1 个答案:

答案 0 :(得分:0)

在我的情况下,问题是我也使用Elasticsearch 1.5.2作为我的库之一。 Mockito和Elasticsearch版本在2.0之前存在一个错误,其中Mockito不起作用(参见https://github.com/mockito/mockito/issues/341)。