为将数据持久化到nosql数据存储的代码编写单元测试的最佳方法是什么,在我们的例子中是cassandra?
=> 我们正在使用嵌入式服务器方法,使用来自 git hub 的实用程序(https://github.com/hector-client/hector/blob/master/test/src/main/java/me/prettyprint/hector/testutils/EmbeddedServerHelper .java )。但是,我已经看到了一些问题。1)它在多个测试用例中保留数据,这使我们很难确保测试类的测试用例中的数据不同。我尝试调用 cleanUp @After 每个测试用例,但这似乎并没有清理数据。2)我们在添加更多测试时内存不足,这可能是因为 1,但我还不确定。我目前有 1G 的堆大小来运行我的构建。
=> 我一直在考虑的另一种方法是模拟 cassandra 存储。但这可能会泄露 cassandra 模式中的一些问题,因为我们经常发现上述方法会发现数据存储到 cassandra 中的方式存在问题。
请让我知道您对此的想法以及是否有人使用过 EmbeddedServerHelper 并熟悉我提到的问题。
只是一个更新。通过将测试嵌入式服务器使用的 cassandra.yaml 中的 in_memory_compaction_limit_in_mb 参数更改为 32,我能够解决 2)运行构建时 java 堆空间不足的问题。以下链接帮助了我http://www.datastax.com/docs/0.7/configuration/storage_configuration#in-memory-compaction-limit-in-mb。它是 64 并且在压缩期间开始持续失败。