【发布时间】:2013-09-11 18:03:21
【问题描述】:
我正在尝试使用 mock_redis gem 对 redis 进行 rspec 测试。我的 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
不幸的是,我仍然看到 get 和 set 被发送到我的实际 redis 实例,如果我杀死 redis,那么我的测试都会失败。我尝试添加一个断点,我确实看到这段代码正在正确执行。我还确认,在这个 before 块的范围内,Redis.new == redis_instance 和 Redis::Store.new == redis_instance 都是正确的。
有没有人知道为什么这对我不起作用?我也对存根/模拟 redis 的替代方法持开放态度。
【问题讨论】:
标签: ruby-on-rails rspec mocking redis stub