2010-02-18 37 views
3

我有一個測試,需要檢查給定的方法塊是否被調用。如何測試一個塊被放棄?

block = lambda { 
    #some stuff 
} 
block.should_receive(:call) 

get_data_with_timeout(1, &block) 

def get_data_with_timeout(timeout) 
    begin 
     timeout(timeout) { 
      data = get_data 
      yield data #do stuff 
     } 
    rescue Timeout::Error 
     #timeout! 
    end 
end 

本質上我想檢查,如果沒有超時那麼塊被調用,反之亦然。這是可能的rspec?

回答

7

,我用一個常見的模式:

block_called = false 
get_data_with_timeout(1) do 
    block_called = true 
end 
block_called.should be_true 
+0

嘎!我昨天必須戴上我的C帽子。謝謝 :) – roo 2010-02-19 02:44:12