首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何模拟ElasticSeach客户端

如何模拟ElasticSeach客户端
EN

Stack Overflow用户
提问于 2016-04-26 21:54:25
回答 1查看 1.4K关注 0票数 1

我很难模仿下面的代码:

代码语言:javascript
复制
Client client = TransportClient.builder().settings(settings).build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

我的方法:

代码语言:javascript
复制
Settings.Builder settingsBuilder = mock(Settings.Builder.class);
when(settingsBuilder.put(new String("test"), new String("test"))).thenReturn(settings.settingsBuilder());
when(settingsBuilder.build()).thenReturn(settings);

TransportClient.Builder clientBuilder = mock(TransportClient.Builder.class);
when(clientBuilder.settings(settings)).thenReturn(clientBuilder);

在此之前,测试工作正常,但是当试图模拟客户机上使用的其他类时,Mockito抛出以下异常:

错误:

代码语言:javascript
复制
org.mockito.exceptions.misusing.MissingMethodInvocationException: 
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);

Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
2. inside when() you don't call method on mock but on some other object.

问题:

现在,我意识到这可能会被抛出,因为我没有正确地嘲笑一些东西,但我不知道这次我的嘲笑是怎么回事。如何正确地模拟客户端,从而模拟所有依赖类并返回一个新的模拟客户端?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-04-26 22:18:19

根据你们的类名,我在这里猜一下。

代码语言:javascript
复制
Client client = TransportClient.builder().settings(settings).build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

假设TransportClient.builder()返回transportClient.Builder,那么您需要:

代码语言:javascript
复制
when(clientBuilder.settings(anyOf(Settings.class)).thenReturn(clientBuilder);
when(clientBuilder.build()).thenReturn(a transport client mock);

我假设TransportClient.addTransportAddress不需要一个模拟--它只需要被验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36876476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档