Vert.x fake/embedded mongo

Vert.x fake/embedded mongo

我有一项服务,我需要在其中实施功能测试(Cucumber),它会进行一些休息调用。

现在,在我之前的 spring 项目中,我曾使用过 fongo,但我猜它不适用于 Vert.x

现在对于我的黄瓜测试,我该如何实现假 mongo/embedded mongo 或者是他们一起的另一个图书馆。我也试过 vertx-embedded-mongo-db 但它缺少好的文档。

我有一个类似的需求,我通过 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.xvertx-embedded-mongodb 不再支持 4.x.x