NullPointerException Проблема при попытке имитировать RestHighLevelClient Elastic SearchJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 NullPointerException Проблема при попытке имитировать RestHighLevelClient Elastic Search

Сообщение Anonymous »

Я сталкиваюсь с NullPointerException во время модульного тестирования при попытке протестировать и имитировать RestHighLevelClient внутри класса ElasticClient:

@Configuration
@NoArgsConstructor
public class ElasticClient{

@Setter
private RestHighLevelClient restHighLevelClient;

@PostConstruct
public void buildRestHighLevelClient(){

RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(
"127.0.0.1",
9200, "http")
);

restClientBuilder.setRequestConfigCallback(
requestConfigBuilder ->
requestConfigBuilder
.setConnectTimeout(500000)
.setSocketTimeout(600000)
.setConnectionRequestTimeout(0)
)
.setHttpClientConfigCallback(
httpClientBuilder ->
httpClientBuilder
.setMaxConnPerRoute(2048)
);

restHighLevelClient = new RestHighLevelClient(restClientBuilder);
}

public boolean isReachable(){
return restHighLevelClient.ping(RequestOptions.DEFAULT);
}

}


И тестовый класс:

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
public class ElasticClientTest{

@Mock
private RestHighLevelClient restHighLevelClient;

ElasticClient elasticClient;

@Before
public void init(){

elasticClient = new ElasticClient();
elasticClient.setRestHighLevelClient(restHighLevelClient);

}


И исключение NullPointerException происходит отсюда:

@Test
public void whenElasticIsPingable_thenReturnTrue() throws IOException{

when(restHighLevelClient.ping(RequestOptions.DEFAULT)).thenReturn(true);
Assertions.assertThat(elasticClient.isReachable()).isTrue();
}


Вот трассировка стека:

java.lang.NullPointerException
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1764)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1734)
at org.elasticsearch.client.RestHighLevelClient.ping(RestHighLevelClient.java:694)
at com.example.ElasticClientTest.whenElasticIsPingable_thenReturnTrue(ElasticClientTest.java:44)


Подробнее здесь: https://stackoverflow.com/questions/589 ... highlevelc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»