ruby-on-rails – 有没有一个宝石来测试Rails中的Redis逻辑?

数据库清理器,或测试运行后认清除数据存储.我搜索,找不到一个.它可以是单独的测试数据存储,也可以是将所有Redis命令命名为测试命名空间的简单操作.

如果任何人知道任何lemme知道,否则我会写一个和操作系统:)

解决方法

当使用rails和redis时,我对不同的环境使用不同的redis db或 namespace.该设置非常简单,类似于ActiveRecords数据库配置.

首先,创建一个config:(命名空间版本注释掉)

#config/redis.yml
default:
  host: localhost
  port: 6379
development:
  db: 0
#  namespace: appname_dev
test:
  db: 1
#  namespace: appname_test
production:
  db: 2
  host: 192.168.1.100
#  namespace: appname_prod

然后加载配置并通过初始化程序连接到redis

#config/initializers/redis.rb
REdis_CONfig = YAML.load( File.open( Rails.root.join("config/redis.yml") ) ).symbolize_keys
dflt = REdis_CONfig[:default].symbolize_keys
cnfg = dflt.merge(REdis_CONfig[Rails.env.to_sym].symbolize_keys) if REdis_CONfig[Rails.env.to_sym]

$redis = Redis.new(cnfg)
#$redis_ns = Redis::Namespace.new(cnfg[:namespace],:redis => $redis) if cnfg[:namespace]

# To clear out the db before each test
$redis.flushdb if Rails.env == "test"

如果您使用该版本,请记住将“redis-namespace”添加到您的Gemfile中.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...