CassandraUnit是一个Cassandra数据操作的单元测试框架,其功能与关系型数据库测试框架DBunit类似,只是其测试对象是Cassandra。
下面是一个最简单使用例子:创建一个用于存储数据的xml文件,命名为 simpleDataSet.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <keyspace xmlns="http://xml.dataset.cassandraunit.org"> <name>beautifulKeyspaceName</name> <columnFamilies> <columnFamily> <name>beautifulColumnFamilyName</name> <row> <key>key10</key> <column> <name>name11</name> <value>value11</value> </column> <column> <name>name12</name> <value>value12</value> </column> </row> <row> <key>key20</key> <column> <name>name21</name> <value>value21</value> </column> </row> </columnFamily> </columnFamilies> </keyspace>
然后再创建一个单元测试类,继承自AbstractCassandraUnit4TestCase
package org.cassandraunit; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertThat; import org.cassandraunit.dataset.IDataSet; import org.cassandraunit.dataset.xml.ClassPathXmlDataSet; import org.junit.Test; public class AutomaticallyStartAndLoadSimpleDataSetTest extends AbstractCassandraUnit4TestCase { @Override public IDataSet getDataSet() { return new ClassPathXmlDataSet("simpleDataSet.xml"); } @Test public void shouldHaveLoadASimpleDataSet() throws Exception { assertThat(getKeyspace(), notNullValue()); assertThat(getKeyspace().getKeyspaceName(), is("beautifulKeyspaceName")); } }
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Facebook目前在使用此系统。
DbUnit 使您可以容易地执行 JDBC 查询并获取它们的值。使用 DbUnit JDBC 包装器而不是纯粹的 JDBC 有几个理由:
- 可以用 SQL 查询创建一个
Dataset
,并使用 DbUnit 的 assertion(断言)方法(在后面描述)。 - 可以用 SQL 查询创建一个
Dataset
,并将它保存为一个FlatXmlDataSet
。可以在以后将它重新装载到数据库中。 - 可以容易地从任何行中获取列的内容,无需进行迭代。