В моем коде я высмеиваю объект:
@Mock
ElasticService elasticServiceMock;
@Autowired
ElasticConfiguration elasticConfiguration;
и я пытаюсь сделать тест:
@Test
public void measureChannelProcessor() throws IOException {
when(elasticServiceMock.insert(anyString(),anyString())).thenAnswer(invocation -> {
String index = (String) invocation.getArguments()[0];
String message = (String) invocation.getArguments()[1];
String requestUri = new StringBuilder()
.append(elasticConfiguration.baseRequestBuilder(index))
.toString();
}
, когда я вызываюasticConfiguration.baseRequestBuilder (index), у меня есть ноль.
реальный классasticConfiguration таков:
@Configuration
public class ElasticConfiguration {
@Autowired ElasticParameters elasticParameters;
public String baseRequestBuilder(String index){
String toRet = new StringBuilder()
.append(elasticParameters.getProtocol())
.append("://")
.append(elasticParameters.getHost())
.append(":")
.append(elasticParameters.getPort())
.append("/")
.append(index)
.append("/")
.append(elasticParameters.getType())
.append("/")
.toString();
return toRet;
}
в частности, я хочу простой реальный классasticConfiguration, но
@Autowired
ElasticConfiguration elasticConfiguration;
не работает! и у меня есть java .lang.NullPointerException.
вопрос в том, как использовать объект в тесте?
Также, если я использую @Mock ElasticConfigurationasticConfiguration;
У меня та же ошибка, но с отладкой я вижу, что @Autowired ElasticParameters
asticParameters; в публикации c класс ElasticConfiguration {имеет значение null.
Некоторые советы?
Спасибо
С уважением