我想像这样模拟RestHighLevelClient:
RestHighLevelClient client = mock(RestHighLevelClient.class);
,但是当我这样做时,它说模拟的客户端为空。就像它不恰当地嘲笑一样。所以当我尝试时:
ActionsSearchRequest request = ActionsSearchRequest.builder()
.merchSnapshot(merchSnapshot)
.siteName(SiteName.COM)
.searchPhrase("skirt")
.build();
SearchHit hit1 = new SearchHit(1);
SearchHit hit2 = new SearchHit(2);
SearchHits searchHits = new SearchHits(new SearchHit[]{hit1, hit2}, new TotalHits(2, TotalHits.Relation.EQUAL_TO), 1.0f);
SearchResponse searchResponse = mock(SearchResponse.class);
when(searchResponse.getHits()).thenReturn(searchHits);
when(searchResponse.getTotalShards()).thenReturn(1);
when(searchResponse.getSuccessfulShards()).thenReturn(1);
when(searchResponse.getFailedShards()).thenReturn(0);
when(searchResponse.getShardFailures()).thenReturn(null);
when(searchResponse.isTimedOut()).thenReturn(false);
when(client.search(any(SearchRequest.class), any(RequestOptions.class))).thenReturn(searchResponse);
我在正在测试的类中的
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
行上收到 NullPointerException。