Skip to content

oyindonesia/redis-mock

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub release Build Status Slack Status

Redis-Mock

Redis Mock is a simple in-memory mock of redis for java testing. It allows you to test any behaviour dependent on redis without having to deploy an instance of redis

Quickstart

Add it as a dependency in Maven as:

<dependency>
  <groupId>ai.grakn</groupId>
  <artifactId>redis-mock</artifactId>
  <version>0.1.6</version>
</dependency>

Or use it to gradle dependency from oyindonesia

compile 'com.github.oyindonesia:redis-mock:master-SNAPSHOT'

add build.gradle repository

maven { url 'https://jitpack.io' }

Create a redis server and bind it to jedis:

private static RedisServer server = null;

@Before
public void before() throws IOException {
  server = RedisServer.newRedisServer();  // bind to a random port
  server.start();
}

@Test
public void test() {
  ...
  Jedis jedis = new Jedis(server.getHost(), server.getBindPort());
  ...
}

@After
public void after() {
  server.stop();
  server = null;
}

From here test as needed

Master and Slave

RedisServer master = newRedisServer();
RedisServer slave = newRedisServer();
master.setSlave(slave);

Fault tolerance testing

We can make a RedisServer close connection after every serveral commands. This will cause a connection exception for clients.

RedisServer server = RedisServer.newRedisServer();
ServiceOptions options = new ServiceOptions();
options.setCloseSocketAfterSeveralCommands(3);
server.setOptions(options);
server.start();

About

A simple redis java mock for unit testing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%