我将Apache Ignite用作分布式缓存,它是使用Ignite Web Console基于现有数据库生成的配置,它是一种直写式缓存,它将定期将缓存的数据持久化到Postgres数据库中。但是,我想为我的项目用Java编写单元测试,并且没有可靠的测试数据库可以使用。
我要测试的部分是我偶尔在Ignite缓存上运行的缓存查询-我想使用sql查询来执行此操作。但是,在没有数据库的情况下,我无法弄清楚如何从缓存配置中保留queryEntities。我尝试为测试目的制作一个新的xml文件,该文件仅配置我需要的缓存,并且仅设置查询实体(不设置数据存储或任何数据库信息),但是运行测试时,我收到“无法初始化数据库连接”错误-即使我的配置中没有定义数据库。
是否有一种方法可以利用这些查询实体而无需实际将缓存连接到数据库?如果没有,是否有一个很好的方法可以将Postgres数据库作为单元测试的一部分?
答案 0 :(得分:1)
您需要检查持久性存储配置,并先禁用该配置以将所有内容存储在内存中。
接下来,确保在进行测试缓存配置时没有初始化任何数据库连接(您已经说过要照顾这个事实)。
答案 1 :(得分:0)
cacheCfg.setWriteThrough(false).setReadThrough(false)
应该在定义缓存时达到目的(请注意,在缓存启动后,无法更改cfg)