2010-08-13 18 views
8

Qual è il modo migliore per scrivere le specifiche relative a Resque in RSpec without stubbing the former?Qual è il modo migliore per scrivere le specifiche relative a Resque in RSpec?

Attualmente utilizziamo il seguente aiuto:

@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 

fortemente prestito da suo aiutante il test di Resque, questo funziona bene, ma sputa fuori un fastidioso zsh: killed rake quando l'intera suite specifica è gestito attraverso rake.

risposta

5

È possibile utilizzare la gemma resque_spec http://github.com/leshill/resque_spec. Un gruppo di fiammiferi per testare resque.

+1

Che Stub Resque, che va bene per unit testing suppongo, ma io preferisco di esecuzione di un'istanza effettiva di Resque a scrivere test di integrazione più complessi. Sembra che avremo a che fare con quanto sopra per ora. –

+1

@HakanEnsari, hai mai finito per fare qualcosa di diverso per le tue specifiche? Sono in procinto di scrivere un test che richiede l'integrazione di resque (usando resque_mailer) e sono perplesso. – Tass

Problemi correlati