请注意,客户端为RestHightLevelClient,
@Override
public void createAlias(final String aliasName, final String indexName, final boolean writable)
throws IOException {
IndicesAliasesRequest request = new IndicesAliasesRequest();
AliasActions aliasAction = new AliasActions(AliasActions.Type.ADD).index(indexName)
.alias(aliasName);
if (writable) {
aliasAction.writeIndex(true);
}
request.addAliasAction(aliasAction);
AcknowledgedResponse response = client.indices().updateAliases(request, RequestOptions.DEFAULT);
}
我尝试为此编写测试用例:
@Test
void testCreateAlias() throws IOException {
AcknowledgedResponse response = AcknowledgedResponse.of(true);
when(client.indices().updateAliases(Mockito.mock(IndicesAliasesRequest.class), RequestOptions.DEFAULT))
.thenReturn(response);
searchManagerService.createAlias("test", "test_idx", true);
}
错误:client.indexs()为空,
如何解决这一问题?
1条答案
按热度按时间a64a0gku1#
模拟client.indices()以返回一个模拟的IndicesClient示例。然后模拟IndicesClient updateAliases方法以返回响应。
另外,我相信您希望在最后一行中使用匹配器。any(IndicesAliasesRequest.class)而不是Mockito.mock: