Каков наилучший способ записи спецификаций, связанных с Resque, в RSpec without stubbing the former?Каков наилучший способ записи спецификаций, связанных с 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
, когда вся спецификация люкс пробежать грабли.
Это тушит Resque, который прекрасно подходит для модульного тестирования, я полагаю, но я предпочитаю, чтобы запустить реальный экземпляр Resque к написать более сложные интеграционные тесты. Кажется, что мы должны будем сделать это выше. –
@HakanEnsari, ты когда-нибудь делал что-то другое для своей спецификации? Я в процессе написания теста, который требует интеграции resque (с использованием resque_mailer), и я в тупике. – Tass