Я пытаюсь написать тест для своего сервиса, который устанавливает соединение с другим сервисом, который возвращает мне элементы из базы данных.Моя проблема в том, что я устанавливаю свойства соединения в тесте и запускаю сервис.Как это может быть имитацией или чем-то похожим?
Мой метод запуска службы:
public void doStartService() {
super.doStartService();
PoolingHttpClientConnectionManager manager = new PoolingHttpClientConnectionManager();
manager.setDefaultMaxPerRoute(maxConnectionsPerRoute);
manager.setMaxTotal(maxConnections);
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setSocketTimeout(socketTimeout)
.setRedirectsEnabled(false).build();
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setDefaultRequestConfig(requestConfig);
builder.setConnectionManager(manager);
client = builder.build();
}
Мой метод проверки установки и один метод проверки:
private ProductCatalogIntegrationService service;
@Before
public void setup() {
service = new Service();
service.setConnectTimeout(10000);
service.setSocketTimeout(10000);
service.setMaxConnections(10);
service.setMaxConnectionsPerRoute(10);
service.setUrl("http://localhost:8888/products");
service.doStartService();
}
@Test
public void testReturnProductById() {
service.setProductById(GET_PRODUCT_BY_ID); // set url from get product by id, by this url my other service goes to the database
jsonItem = service.getProductById("1"); //get product by id 1
assertEquals(jsonItem.getId(), FIRST_PRODUCT_ID); // I compare the id on which I made the request to the database, so that I came and was wrapped in a class wrapper
}
Как это сделатьэто правильно, чтобы не настраивать соединение в тестах?