Какой лучший способ написать спецификации, связанные с Resque, в RSpec? - PullRequest
8 голосов
/ 13 августа 2010

Как лучше всего написать спецификации, связанные с Resque, в RSpec без указания прежнего ?

В настоящее время мы используем следующий помощник:

@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.

Ответы [ 2 ]

12 голосов
/ 22 июля 2011

Вот рекомендация resque о том, как лучше всего запустить процессы Redis в ваших спецификациях:

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

6 голосов
/ 13 августа 2010

Вы можете использовать gem resque_spec http://github.com/leshill/resque_spec. Связка совпадений для тестирования resque.

...