Provide a non-persistent Redis server for use in integration tests.
Many Redis test solutions work by completely mocking out the Redis client interface. This is sometimes a good approach, especially if you want to write pure unit tests. However, there are times you want to integrate with Redis safely for testing purposes.
Testing against a running Redis server instance can be tricky. Since Redis
supports a few numeric database ids, knowing where it's safe to tread
during tests is iffy. This is especially true when writing tests that
integrate through to the service inside a public gem. One errant
redis.flushdb and you might have just dropped some cherished data on
behalf of a user. That is, not good.
The IntegrationTestRedis class provides
to get at a Redis setup suitable for integration testing. It starts a running,
non-persistent server for you.
require "integration_test_redis" # Start the server IntegrationTestRedis.start # Get a suitable client to the server redis_client = IntegrationTestRedis.client # Stop the server. Also handled automatically in an at_exit callback IntegrationTestRedis.stop
This code was extracted from the work of various individuals to the Likeable codebase.
Copyright (c) (2011) Brendon Murphy. See LICENSE for details.