Hectorを使ってみる (4) - 単体テスト -
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を使ってスタートさせてそのインスタンスでテストする事が出来るっていう感じで