对于将数据保存到nosql数据存储的代码,编写单元测试的最佳方法是什么,在我们的例子中是cassandra?
=>我们使用嵌入式服务器方法使用来自git hub的实用程序(https://github.com/hector-client/hector/blob/master/test/src/main/java/me/prettyprint/hector/testutils/EmbeddedServerHelper .java).但是我一直在看这个问题.1)它将数据保存在多个测试用例中,这使得我们很难确保测试类的测试用例中的数据不同.我尝试在每个测试用例之后调用cleanUp @Ahech,但这似乎并没有清理数据.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并且在压实期间始终失败.
是否有可以创建增量的框架/工具,以便可以将增量模式更新(模式迁移)应用于Cassandra(例如:创建/更新列族,索引列).