/disposable-redis

Create disposable redis servers on the fly for testing

Primary LanguageGoOtherNOASSERTION

Disposable-Redis

Create disposable instances of redis server on random ports

This can be used for testing redis dependent code without having to make assumptions on if and where redis server is running, or fear of corrupting data.

You just create a redis server instance, run your code against it as if it were a mock, and then remove it without a trace. The only assumption here is that you have redis-server available in your path.

For full documentation see http://godoc.org/github.com/EverythingMe/disposable-redis

Example:

import (
	"fmt"
	"time"
	disposable "github.com/EverythingMe/disposable-redis"
	redigo "github.com/garyburd/redigo/redis"
)

func ExampleServer() {

	// create a new server on a random port
	r, err := disposable.NewServerRandomPort()
	if err != nil {
		panic("Could not create random server")
	}

	// we must remember to kill it at the end, or we'll have zombie redises
	defer r.Stop()

	// wait for our server to be ready for serving, for at least 50 ms.
	// This gives redis time to initialize itself and listen
	if err = r.WaitReady(50 * time.Millisecond); err != nil {
		panic("Couldn't connect to instance")
	}

	//now we can just connect and talk to it
	conn, err := redigo.Dial("tcp", r.Addr())
	if err != nil {
		panic(err)
	}

	fmt.Println(redigo.String(conn.Do("SET", "foo", "bar")))
	//Output: OK <nil>

}