【发布时间】:2015-09-25 12:22:43
【问题描述】:
鉴于类似:
class MyClass
def subscribe
$redis.subscribe('channel') do |on|
on.message do |channel, msg|
Something.create(msg)
end
end
end
end
我如何测试当MyClass 执行subscribe 时,它会为它在频道上收到的每条消息运行Something.create?
【问题讨论】:
-
为什么要用
$redis作为全局变量? -
从理论上讲,您有两种方法可以做到这一点:1- 模拟 Redis 对象 2- 测试 msg 是否已发布到频道。
-
Alexey:为了更容易理解代码,在我的真实代码中,它是@store,但是我必须将初始化代码放在示例中,我想有一个简单的使用案例。
-
@moeabdol : mock_redis 不支持 pubsub 功能。
标签: ruby rspec redis publish-subscribe