java中涉及Elasticsearch的单元测试

分享于2023年05月01日 elasticsearch java unit-testing 问答
【问题标题】:Unit test involving Elasticsearch in javajava中涉及Elasticsearch的单元测试
【发布时间】:2023-04-25 11:58:01
【问题描述】:

我正在使用带有 elasticsearch-rest-high-level-client 的 Spring Boot,并且我目前正在编写单元测试。

我的程序只是一个用于调用 ES 的简化 REST API,因此我的单元测试需要模拟 ES 数据库或正在运行的 ES 实例,而到目前为止我还无法做到这些。


【解决方案1】:

事实上,如果你真的编写 单元 测试,它们就不能使用任何数据库或实例(或者它们是集成测试)。

我建议谷歌如何测试 example WireMock this question 的 Spring Rest Client。您只需定义您想要从 Elasticsearch 获得的结果。

如果你真的需要集成测试,你可以创建任何 ES 演示实例。

【讨论】:

  • 我去看看,谢谢。我知道这不是单元测试,但到目前为止,这是我想到的关于我的应用程序的唯一相关测试。
  • 所以我现在正在使用WireMock,我很满意,非常感谢。我发现唯一令人不安的事情,但它可能与 elasticsearch 高级休息客户端有关,或者只是我滥用了一些东西:我必须 stubFor 一个 post 方法来模拟我的更新调用和 stubFor 一个 put 方法来模拟我的 create 调用。