当前位置:  开发笔记 > 后端 > 正文

是否有一个宝石来测试Rails中的Redis逻辑?

如何解决《是否有一个宝石来测试Rails中的Redis逻辑?》经验,为你挑选了1个好方法。

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

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



1> 小智..:

使用rails和redis时,我为不同的环境使用不同的redis db或命名空间.设置非常简单,与ActiveRecords数据库配置类似.

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

#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中.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有