In order to write integration tests for your application, you need ability to spin up a geode cluster from your test and then run tests for your application that work against the cluster. Geode now ships with a JUnit Rule to help.
You can use this GfshRule like so:
public class LibraryTest {
@Rule
public GfshRule gfshRule = new GfshRule();
@Test
public void testSomeLibraryMethod() {
Library classUnderTest = new Library();
GfshScript.of("start locator --name=loc",
"start server --name=serv1",
"create region --name=test --type=REPLICATE").execute(gfshRule);
classUnderTest.doPut();
assertEquals("one", classUnderTest.doGet());
}
} |
While running this test, a locator and a server JVM will be spun-up by GfshRule.
You need to follow the following steps to get this to work:
Specify geode-junit as a compile dependency for your tests by adding the following in your build.gradle
testCompile 'org.apache.geode:geode-junit:geodeVersion'
plugins {
id "io.pivotal.GeodeIntegrationTestPlugin" version "1.0"
}This will download the latest version of Apache Geode. If you want to specify a version use the following in your build.gradle
geodeIntegration {
version = "1.2.0"
}
A very simple application can be found at: https://github.com/sbawaska/geode-integration-test-example