Elasticsearch модульное тестирование - PullRequest
0 голосов
/ 22 сентября 2018

С последней версией elasticsearch 6.4.1 я бы хотел провести модульное тестирование.В настоящее время реализовано модульное тестирование, поскольку интеграционное тестирование как RestHighLevelClient не является mockable. Я вижу, что RestClient, хотя mockable не может быть установлено в restHighLevelClient.Я хочу издеваться над эластичным поиском, чтобы я мог проводить тесты где угодно.Любым возможным способом использования Node и Settings я не хочу полноценного кластера.

1 Ответ

0 голосов
/ 22 сентября 2018

Реальный вопрос заключается в том, что именно является целью такого теста

Есть два возможных варианта:

  • Тест, который проверяет бизнес-логику и предполагает "Уровень доступа к данным »(с эластичным поиском в качестве механизма сохранения) работает как ожидалось

  • Тест должен проверить код, который взаимодействует с ES (убедитесь, что запросы снабжены правильными параметрами, правильно созданыи выполнено)

Итак, если тест относится к первой категории, то вам вообще не нужен эластичный поиск, просто макетируйте слой DAL с помощью mockito или чего-то еще, и выготовоКонечно, чтобы эта вещь работала лучше, у вас должен быть четко определенный уровень доступа к данным

Большая часть кода может быть проверена следующим образом, и это правильный модульный тест.

Для проверкисам слой DAL, однако, этого недостаточно.Вам придется работать против настоящего механизма поиска упругого поиска.

Я могу порекомендовать подход к запуску Elasticsearch в Docker (см. Проект testcontainers перед тестовым набором и остановите его позже (вы можете дажекэшируйте его между тестовыми сценариями, чтобы запустить его только один раз.

Вы получите случайно сгенерированные порты, которые будут сопоставлены с контейнером Docker 9200/9300, чтобы одновременно выполнять несколько тестов на одном компьютере (например, CI).или что-то в этом роде) не будет мешать.

Другой подход заключается в использовании библиотеки Allegro . Она позволяет создавать встроенные конфигурацииasticsearch в качестве части ваших тестов и использоваться главным образом для интеграционного тестирования.

Я не проверял это сам, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...