PS: I copied that from a test that sets a couple System Properties. If your
test doesn't alter any System Properties, then feel free to remove the
RestoreSystemProperties Rule.


On Thu, Mar 3, 2016 at 10:04 AM, Kirk Lund <[email protected]> wrote:

> Hi Matt,
>
> I would write unit tests specific to your classes and then write
> integration tests that exercise your code within Geode. Below is a simple
> example of an integration test using Geode Cache. You should be able to
> change that to use a Client Cache.
>
> import static org.hamcrest.CoreMatchers.*;
> import static org.hamcrest.MatcherAssert.*;
>
> import com.gemstone.gemfire.cache.Cache;
> import com.gemstone.gemfire.cache.CacheFactory;
> import com.gemstone.gemfire.cache.Region;
> import com.gemstone.gemfire.cache.RegionFactory;
> import org.junit.After;
> import org.junit.Before;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.contrib.java.lang.system.RestoreSystemProperties;
> import org.junit.rules.TestName;
>
> import java.io.Serializable;
> import java.util.Properties;
>
> /**
>  * Simple integration test with Geode.
>  */
> public class SimpleGeodeIntegrationTest {
>
>   private Cache cache;
>   private RegionFactory regionFactory;
>
>   @Rule
>   public TestName testName = new TestName();
>
>   @Rule
>   public RestoreSystemProperties restoreSystemProperties = new 
> RestoreSystemProperties();
>
>   @Before
>   public void setUp() throws Exception {
>     Properties geodeProperties = new Properties();
>     geodeProperties.put("name", testName.getMethodName());
>     geodeProperties.put("locators", "");
>     geodeProperties.put("mcast-port", "0");
>     this.cache = new CacheFactory(geodeProperties).create();
>     this.regionFactory = this.cache.createRegionFactory();
>   }
>
>   @After
>   public void tearDown() {
>     this.cache.close();
>   }
>
>   @Test
>   public void shouldDoX() {
>     Region<String, Serializable> myRegion = this.regionFactory.<String, 
> Serializable>create("MyRegion");
>     assertThat(myRegion, is(not(nullValue())));
>   }
> }
>
> -Kirk
>
>
> On Thu, Mar 3, 2016 at 7:06 AM, Matt Ross <[email protected]> wrote:
>
>> Hi all
>>
>> A colleague  and I have been talking about the best strategies to do unit
>> testing and TDD in Gemfire/Geode.  Obviously writing unit tests for a
>> Gemfire/Geode Client is fairly straightforward, but how would I unit test a
>> function that I'm running on the cluster.  Or how would I write tests for a
>> cache listener?  I've been pointed in the direction of power mock but could
>> still use some more input from the community on what some of the better
>> strategies are.
>>
>> Are there any examples on Github of how to write these serverside unit
>> tests?  Like I said at this point we're only able to do integration testing
>> and unit testing of the client so I've been fairly limited in being able to
>> do TDD.  Thanks!
>>
>> --
>> *Matthew Ross | Data Engineer | Pivotal*
>> *625 Avenue of the Americas NY, NY 10011*
>> *516-941-7535 <516-941-7535> | [email protected] <[email protected]> *
>>
>>
>

Reply via email to