【问题标题】:SpringBoot Redis integration testingSpringBoot Redis 集成测试
【发布时间】:2018-04-24 08:15:10
【问题描述】:

我有一个带有MySQLSpringBoot 的应用程序。

Redis 被用于使用 spring 缓存注释进行缓存。

现在,启动 Redis 等已不是问题,因为我使用 Docker compose 动态分配容器进行测试。

但是,验证数据实际上是从 Redis 缓存而不是 Mysql 写入和读取的正确方法是什么?

【问题讨论】:

    标签: mysql spring-boot redis


    【解决方案1】:

    您可以在要确保仅使用 Redis 的集成测试部分阻止客户端代码与 MySQL 数据库通信。
    你不精确与 MySQL 数据库通信的确切方式,所以我不能给你一个具体的建议。

    但这里有一些想法:

    • 依赖 MySQL 后端服务实现,在调用任何方法时都会引发异常
    • 关闭 MySQL 数据库
    • 使用空的 MySQL 数据库

    【讨论】:

    • 抛出异常似乎是个好主意。因此,我可以模拟调用 mysql 的 spring 存储库,并在第二次调用时抛出异常,因为这次数据应该从缓存而不是从数据库返回。如果它有效,我们可以说 Redis 集成是正确的。现在将尝试实施。
    【解决方案2】:

    为了测试它,我从 rest 端点创建记录,然后直接使用 spring 存储库将其从数据库中删除。然后,由于它被缓存,即使它不存在于数据库中,它也应该可以通过缓存中的其余端点访问。

    【讨论】:

      猜你喜欢
      • 2019-09-19
      • 2019-11-02
      • 2013-04-07
      • 2021-09-24
      • 2021-12-05
      • 2021-11-29
      • 2018-04-12
      • 2022-10-21
      • 2019-04-18
      相关资源
      最近更新 更多