我有这样的方法:
def my_method(id)
EventMachine.add_periodic_timer(10) do
my_other_method(id)
end
end
(显然简化了。)我如何编写一个rspec测试来检查my_other_method()
被调用?或者这种情况反复发生?当我在测试中调用my_method()
时,测试因为EM计时器而冻结。
我见过em-rspec和em-spec,但无法看到如何将它们用于此特定测试。后者似乎假设您的EM计时器是自己编写的,而不是您正在测试的代码? (但也许我误解了?)
答案 0 :(得分:0)
如果我理解正确,您可以使用这些examples。 例如
# test that method is called 10 times
MyObject.should_receive(:my_other_method).exactly(10).times
# stub 10 calls for method my_other_method
MyObject.should_receive(:my_other_method).exactly(10).times.and_return(val1, val2, ..., val10)
您可以通过上面的链接找到以下其他示例