如何测试块是否已经产生?

时间:2010-02-18 03:59:09

标签: ruby rspec

我有一个测试需要检查是否正在调用给定方法的块。

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中是否可行?

1 个答案:

答案 0 :(得分:7)

我使用的常见模式:

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