我有一个测试需要检查是否正在调用给定方法的 block 。
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
本质上,我想检查是否没有超时,然后 block 被调用,反之亦然。这在 rspec 中可能吗?
最佳答案
我常用的模式:
block_called = false
get_data_with_timeout(1) do
block_called = true
end
block_called.should be_true
关于ruby - 如何测试一个 block 是否被屈服?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2286192/