当前位置 : 主页 > 编程语言 > ruby >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个测试需要检查是否正在调用给定方法的块. 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 da
我有一个测试需要检查是否正在调用给定方法的块.

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

我使用的常见模式:

block_called = false
get_data_with_timeout(1) do
    block_called = true
end
block_called.should be_true
网友评论