Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleIntegration Test
linenumberstrue
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.

Step-by-step guide

You need to follow the following steps to get this to work:

  1. 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'

     

  2. Specify the gradle plugin that will download and install the Geode distribution to be used by GfshRule by adding the following to at the top of your build.gradle file 
    apply plugin: 'geode-integration-test-gradle-plugin'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"
    }

     

  3. Write your integration tests by spinning up a Geode cluster using gfsh commands as shown above.

 

A very simple application can be found at: https://github.com/sbawaska/geode-integration-test-example