Я пытаюсь использовать метод Junit для приведенного ниже Java-метода. Я правильно издевался над CloseableHttpClient и CloseableHttpResponse, но все равно получаю ноль, когда мой junit вызывает HttpResponse response = httpClient.execute(request); Я получаю нулевое значение ответа. Я что-то упустил?
Код: Выделить всё
private String getEndPointResponse() {
CloseableHttpClient httpClient = HttpClientBuilder
.create()
.setDefaultRequestConfig(RequestConfig.custom()
.setConnectTimeout(prod.httpTimeout() * 1000)
.build())
.build();
HttpGet request = new HttpGet("www.testendpoint");
try {
HttpResponse response = httpClient.execute(request);
int statusCode = response.getStatusLine().getStatusCode();
LOGGER.info("Response status: {}", statusCode);
if (statusCode == 200) {
LOGGER.info("Successfully retrieved data from: {}", url);
return IOUtils.toString(response.getEntity().getContent(), StandardCharsets.UTF_8);
}
} catch (Exception e) {
//
}
return null;
}
Код: Выделить всё
@AemTest
class ContnetTileTest {
@Mock
private CloseableHttpClient httpClient;
@Mock
private CloseableHttpResponse httpResponse;
@BeforeEach
void setUp() throws ProviderException {
context.load().json("/com/contentTile-page.json",
"/content/contentTile");
context.create().resource("/content/jcr:content");
context.registerService(CloseableHttpResponse.class, httpResponse);
context.registerService(CloseableHttpClient.class, httpClient);
provider = context.registerInjectActivateService(new ContnetTile());
}
@Test
public void testContnetTile() throws Exception {
when(httpClient.execute(any(HttpGet.class))).thenReturn(httpResponse);
when(httpResponse.getStatusLine()).thenReturn(mock(StatusLine.class));
when(httpResponse.getStatusLine().getStatusCode()).thenReturn(200);
//assertTrue(properties.containsKey("conTile"), "content prop");
}
}
Источник: https://stackoverflow.com/questions/781 ... g-in-junit