8

在 RSpec 中编写与 Resque 相关的规范而不对前者进行存根的最佳方法是什么?

我们目前使用以下助手:

@dir = File.dirname(File.expand_path(__FILE__))

def start_redis
  `redis-server #{@dir}/redis-test.conf`
  Resque.redis = "localhost:9736"
end

def stop_redis
  `rm -f #{@dir}/dump.rdb`
  pid = `ps -A -o pid,command | grep [r]edis-test`.split(" ")[0]
  Process.kill("KILL", pid.to_i)
end

Rspec.configure do |config|
  config.before(:suite) do
    start_redis
  end

  config.after(:suite) do
    stop_redis
  end

  config.before(:each) do
    Resque.redis.flushall
  end
end

大量借用 Resque 自己的测试助手,这工作正常,zsh: killed rake但当整个规范套件通过 rake 运行时会产生烦人的情况。

4

2 回答 2

12

这是 resque 关于如何在您的规范中最好地运行 Redis 进程的建议:

https://github.com/resque/resque/wiki/RSpec-and-Resque

于 2011-07-22T04:40:17.280 回答
6

您可以使用 resque_spec gem http://github.com/leshill/resque_spec。一堆匹配器来测试 resque。

于 2010-08-13T13:11:07.827 回答