2010-08-13 10 views
8

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

Respuesta

5

Puede usar la gema resque_spec http://github.com/leshill/resque_spec. Un montón de matcher para probar resque.

+1

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

+1

@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

Cuestiones relacionadas