Hectorを使ってみる (4) - 単体テスト -

2012-09-24T00:00:00+00:00 Cassandra Java

hector-testっていうパッケージがあるのですがこれ特になんちゃらTestCaseとかがある訳じゃなくて、あくまでCassandraのサーバーインスタンスを起動できるヘルパークラスがあって、それを使う事でCassandraを使う事ができるみたいな感じな模様

pom.xml

<dependency>
    <groupId>org.hectorclient</groupId>
    <artifactId>hector-test</artifactId>
    <version>1.1-1</version>
</dependency>

HectorTestCase.java

毎回呼び出すのはめんどくさいので、それっぽいTestCaseなクラス作っておく

import org.junit.AfterClass;
import org.junit.BeforeClass;

import me.prettyprint.hector.testutils.EmbeddedServerHelper;

public abstract class HectorTestCase {

    private static EmbeddedServerHelper helper;

    @BeforeClass
    public static void before() throws Exception {
        helper = new EmbeddedServerHelper();
        helper.setup();
    }

    @AfterClass
    public static void after() {
        try {
            EmbeddedServerHelper.teardown();
            helper = null;
        } catch (Exception e) {
        }
    }
}

SampleHectorTestCase.java

上で書いたHectorTestCaseを継承して書く

import org.junit.Before;

public class SampleHectorTestCase extends HectorTestCase {

    private Cluster cluster;

    @Before
    public void setUp() throws Exception {
        cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost");
    }

    @Test
    public void キースペースを作るテスト() {
        assertNull(
            "この時点でキースペースは無い事を確認",
            cluster.describeKeyspace("sample")
        );

        cluster.addKeyspace(HFactory.createKeyspaceDefinition("sample"));

        assertNotNull(
            "作成したキースペースがあるのを確認",
            cluster.describeKeyspace("sample")
        );
    }
}

まぁ特に何かしてる訳じゃないんすけど、とにかくHectorなAPIを使ってCassandraサーバーなインスタンスをEmbeddedServerHelperを使ってスタートさせてそのインスタンスでテストする事が出来るっていう感じで

Chrome Extension開発を勉強してみる (18) - chrome.experimental.infobar - Hectorを使ってみる (3) - Object Mapperの続き -