2010-08-13 32 views
8

在RSpec without stubbing the former中編寫Resque相關規格的最佳方式是什麼?在RSpec中編寫與Resque相關的規格的最佳方式是什麼?

我們目前使用下面的幫助:

@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

回答

5

您可以使用resque_spec gem http://github.com/leshill/resque_spec。一堆匹配器來測試resque。

+1

即存根Resque,這是很好的單元測試,我想,但我更喜歡跑Resque的實際實例編寫更復雜的集成測試。 似乎我們現在必須處理上述問題。 – 2010-08-14 03:31:36

+1

@HakanEnsari,你有沒有最終爲你的規範做不同的事情?我正在編寫一個測試需要整合resque(使用resque_mailer),我很難過。 – Tass 2011-12-14 22:03:48

相關問題