Я пытаюсь заглушить redis, используя драгоценный камень mock_redis для тестов rspec. Мой RSpec конфигурация выглядит следующим образом:Не удалось заглушить redis в тестах rspec
RSpec.configure do |config|
# ... various rspec config options ...
config.before(:each) do
redis_instance = MockRedis.new
Redis.stub(:new).and_return(redis_instance)
Redis::Store.stub(:new).and_return(redis_instance)
end
end
К сожалению, я до сих пор вижу получает и устанавливает его передачу моего фактического экземпляр Redis, и если я убью Redis, то мои тесты все терпят неудачу. Я попытался добавить точку останова, и я вижу, что этот блок кода выполняется правильно. Я также подтвердил, что в рамках этого блока before
выполняются как Redis.new == redis_instance
, так и Redis::Store.new == redis_instance
.
У кого-нибудь есть представление о том, почему это не работает для меня? Я открыт для альтернативных подходов для укупорки/издевки redis.