在我的Java项目中,我使用卡桑德拉单位来尝试和测试我的DAO。
我在类路径中创建了两个文件:
这是我的考试课:
public class UserProfilingCassandraDaoUTest extends BaseJunitTestCase {
@Rule
public CassandraUnit cassandraUnit = new CassandraUnit(new ClassPathXmlDataSet("cassandraTestValues.xml"), "cassandra.yaml", "127.0.0.1");
private HectorCassandraConnection connection;
@Before
public void init() throws Exception {
connection = Mockito.mock(HectorCassandraConnection.class);
Mockito.when(connection.getKeyspace()).thenReturn(cassandraUnit.keyspace);
}
@Test
public void shouldHaveLoadTestDataSet() throws Exception {
Assert.assertNotNull(cassandraUnit.keyspace);
Assert.assertEquals(cassandraUnit.keyspace.getKeyspaceName(), "rtb");
}
@Test
public void getUserStatsTest() {
// Some Test
}
}这是我的cassandraTestValues.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<keyspace xmlns="http://xml.dataset.cassandraunit.org">
<name>rtb</name>
<columnFamilies>
<columnFamily>
<name>my_column_family</name>
<keyType>UTF8Type</keyType>
<comparatorType>UTF8Type</comparatorType>
<defaultColumnValueType>UTF8Type</defaultColumnValueType>
<row>
<key>12345__678_910</key>
<column>
<name>Col1</name>
<value>6</value>
</column>
<column>
<name>Col2</name>
<value>6</value>
</column>
<column>
<name>Col3</name>
<value>3</value>
</column>
</row>
</columnFamily>
</columnFamilies>
</keyspace>为了克服这个问题,我已经尝试了好几个小时,但都没有成功。有什么想法吗?
发布于 2013-08-06 14:34:23
这是有点悲哀,但改变卡桑德拉单位版本从1.2.0.1到1.0.3.1,它的工作就像一个魅力。通过将这个项目导入到我的工作区,我获得了解决方案。导入的项目工作得很好,经过压缩后,两者都发现版本之间的差异是造成问题的原因。
此外,以后的maven版本中没有使用,这意味着在1.0.3.1之后发布的所有版本都失败了(1.2.0.1,1.1.2.1,1.1.1.3,1.1.1.2,1.1.1.1,1.1.0.1)。
我希望这能为将来的某人节省一些时间。我确实花了一段时间。
https://stackoverflow.com/questions/18073168
复制相似问题