我来自标准的Java JPA / Hibernate开发背景。当我来测试/测试我的DAO层时,我通常会配置一个内存数据库(HSQLDB)来替换与真实数据库的交互。
是否可以/应该使用内存或轻量级的Cassandra?
我已经开始查看DataStax Java驱动程序,看起来我可以构建一个测试框架来附加到正在运行的Cassandra实例,构建密钥库,创建模式插入数据然后删除密钥库。
答案 0 :(得分:2)
是的,您可以在单元测试中运行嵌入式cassandra。但是,它不是完全在内存中,但仍需要磁盘上的位置来创建其数据和tx日志文件。请查看cassandra-unit和examples。如果你谷歌为cassandra-unit,你也会找到有关如何将它与RAM磁盘结合起来以加快速度等方面的文章。
答案 1 :(得分:-1)
(DataStax)Java驱动程序API为其大部分对象引用使用接口,因此您可以使用实现这些接口的模拟对象对您的一些Cassandra操作代码进行单元测试。例如,您可以通过模拟ResultSet
接口来单元测试代码以处理查询返回的数据。但是,这种方法无法让您检查查询是否正确。