使用cassandra-unit测试cassandra时的例外情况

时间:2013-08-06 06:34:35

标签: unit-testing cassandra

在我的Java-Mavan-Spring项目中,我正在使用cassandra unit来测试我的DAO。

我在类路径中创建了2个文件:

  1. 描述我的初始数据的简单XML
  2. cassandra配置文件(cassandra.yaml)
  3. 这是我的测试类:

    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>
    

    当我进行测试时,我this log获得了this error

    我已经尝试了许多不同的方法来克服这个问题而没有成功。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这有点令人伤心,但是将cassandra-unit版本从1.2.0.1更改为1.0.3.1,它就像一个魅力。 我通过将this project导入我的工作区来解决问题。导入的项目运行得很好,并且在编译之后发现版本之间的差异是造成问题的原因。

此外,后来的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)。

我希望这可以节省一些时间给某人。这肯定花了我一段时间。