#mongodb #cucumber #vert.x #functional-testing #embedded-database
#mongodb #огурец #vert.x #функциональное тестирование #встроенная база данных
Вопрос:
У меня есть сервис, в котором мне нужно реализовать функциональные тесты (Cucumber), который выполняет некоторый вызов rest.
Ранее в моих предыдущих проектах spring я использовал fongo, но я предполагаю, что он не работает с Vert.x
Теперь для моих тестов cucumber, как мне реализовать поддельный mongo / встроенный mongo или это все вместе другая библиотека. Я также пробовал vertx-embedded-mongo-db, но там ему не хватает хорошей документации.
Ответ №1:
У меня было аналогичное требование, и я достиг его, используя vertx-embedded-mongodb
Что я сделал, так это запустил vertx-embedded-mongodb
vertical, а затем запустил свою verticle, которая прослушивает порт mongo 27018
.
DeploymentOptions embeddedMongoOptions = new DeploymentOptions()
.setWorker(true)
.setConfig(new JsonObject().put("port", 27018).put("version", "3.4.3"));
vertx.rxDeployVerticle(EmbeddedMongoVerticle.class.getName(), embeddedMongoOptions)
.map(id -> {
return new DeploymentOptions()
.setWorker(true)
.setConfig(myApplicationCongig);
})
.flatMap(options -> vertx.rxDeployVerticle(MyApp.class.getName(), options))
.subscribe();
Просто убедитесь, что в ваших приложениях mongo настроен на прослушивание 27018 вместо 27017 для тестовой среды.
Также приведенное выше решение предназначено только для Vert.x 3.x.x
. vertx-embedded-mongodb
больше не поддерживается для 4.x.x
.