2010-02-18 2 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

GAH! 나는 어제에 내 C 모자가 있었음에 틀림 없다. 감사 :) – roo

관련 문제