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 this GfshRule like so:
Integration Test
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()); } }
Step-by-step guide
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'
- Specify the gradle plugin that will download and install the Geode distribution to be used by GfshRule by adding the following to your build.gradle file
apply plugin: 'geode-integration-test-gradle-plugin'
- Write your integration tests by spinning up a Geode cluster using gfsh commands as shown above.
Related articles