2015-04-27 78 views
0

我目前想知道我必须配置Cassandra进行单元测试。Purified Cassandra 2.1设置单元测试?

目前我只是使用SSD驱动器,并设置不同的Cassandra目录并启动加载测试场景的测试。它死了很慢,但我重用了服务器并治愈了这些情况(恢复而不是删除并重新开始),但除此之外我还能做什么?

我也想过如果我可以创建一个RAM驱动器并安装它只是为了那些测试。

哪些选项可以与测试结合使用,而不会引入使验收测试毫无价值的功能差异?

是否有一个像内存一样的替换替代MySQL/PostgreSQL的H2单元测试?

+0

一篇很好的博客文章,我发现http://christopher-batey.blogspot.de/2014/06/unit-testing -java-cassandra-applications.html –

回答

2

我会避免在你的单元测试中使用一个真正的Cassandra实例,它会使你的测试变得脆弱并且意味着它们将无法在任何地方运行。 Theres提供了几个单元测试你的dao的选项,而不需要真正的Cassandra需要。

一个选项是Cassandra Unit。这可以通过启动一个嵌入式Cassandra供您连接,您可以创建密钥空间/表并插入数据以使其像真正的Cassandra一样。

另一种选择是Scassandra。这开始了一个残缺的卡桑德拉,需要回报什么。关于Scassandra的好处是,你可以测试所有的错误情况,如超时,NoHostAvailable等。

+0

我已经使用的Cassandra单元选项。我还在JDK中启动了一个嵌入式cassandra服务器。我只是不喜欢有额外的文件进行比较。我使用java方法和类来指定方案和预期结果。 Scassandra看起来很有趣。这实际上是一个模拟解决方案的样子,但更多的负担得起和简单的使用(据我所知) –