¿Cuál es la mejor manera de escribir especificaciones relacionadas con Resque en RSpec without stubbing the former?¿Cuál es la mejor manera de escribir especificaciones relacionadas con Resque en RSpec?
Actualmente utilizamos las siguientes ayudante:
@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
préstamos en gran medida de la propia ayudante de la prueba de Resque, esto funciona bien, pero arroja un molesto zsh: killed rake
cuando todo el conjunto de especificaciones que se ejecuta a través de rastrillo.
Eso muñones Resque, lo cual está bien para las pruebas unitarias, supongo, pero yo prefiero a ejecutar una instancia real de Resque a escribir pruebas de integración más complejas. Parece que tendremos que ver con lo anterior por ahora. –
@HakanEnsari, ¿alguna vez terminaste haciendo algo diferente para tu especificación? Estoy en el proceso de escribir una prueba que requiere integración de resque (usando resque_mailer) y estoy perplejo. – Tass