Ruby 如何测试EventMachine.next_勾选rspec

Ruby 如何测试EventMachine.next_勾选rspec,ruby,rspec,eventmachine,Ruby,Rspec,Eventmachine,我正在尝试编写rspec测试来测试一个类似以下内容的方法: def poll_registrations redis.blpop('new', 0).callback do |id| add_id(id) end EventMachine.next_tick { poll_registrations } end 我对它的大部分都很满意,但我不知道如何确保它在下一个滴答声中继续自鸣得意。我纠结于收益率等问题,一事无成。使用下一个滴答是个坏主意。它会影响你的cpu。

我正在尝试编写rspec测试来测试一个类似以下内容的方法:

def poll_registrations
  redis.blpop('new', 0).callback do |id|
    add_id(id)
  end
  EventMachine.next_tick {
    poll_registrations
  }
end

我对它的大部分都很满意,但我不知道如何确保它在下一个滴答声中继续自鸣得意。我纠结于收益率等问题,一事无成。

使用下一个滴答是个坏主意。它会影响你的cpu。如果您能描述您的用例,我们可能会建议一个更好的实现。@CodeGroover next_tick只计划在事件循环的下一次迭代中运行块,而不是在事件循环的每一次迭代中运行块。@tadman此递归具有与while true相同的思想:poll_registrations;结束,不是吗?@CodeGroover不,它在下一个可用的机会中只运行一次。你在想这个物体。@tadman我需要玩游戏来检查这个: