Реальный вопрос заключается в том, что именно является целью такого теста
Есть два возможных варианта:
Тест, который проверяет бизнес-логику и предполагает "Уровень доступа к данным »(с эластичным поиском в качестве механизма сохранения) работает как ожидалось
Тест должен проверить код, который взаимодействует с ES (убедитесь, что запросы снабжены правильными параметрами, правильно созданыи выполнено)
Итак, если тест относится к первой категории, то вам вообще не нужен эластичный поиск, просто макетируйте слой DAL с помощью mockito или чего-то еще, и выготовоКонечно, чтобы эта вещь работала лучше, у вас должен быть четко определенный уровень доступа к данным
Большая часть кода может быть проверена следующим образом, и это правильный модульный тест.
Для проверкисам слой DAL, однако, этого недостаточно.Вам придется работать против настоящего механизма поиска упругого поиска.
Я могу порекомендовать подход к запуску Elasticsearch в Docker (см. Проект testcontainers перед тестовым набором и остановите его позже (вы можете дажекэшируйте его между тестовыми сценариями, чтобы запустить его только один раз.
Вы получите случайно сгенерированные порты, которые будут сопоставлены с контейнером Docker 9200/9300, чтобы одновременно выполнять несколько тестов на одном компьютере (например, CI).или что-то в этом роде) не будет мешать.
Другой подход заключается в использовании библиотеки Allegro . Она позволяет создавать встроенные конфигурацииasticsearch в качестве части ваших тестов и использоваться главным образом для интеграционного тестирования.
Я не проверял это сам, хотя