0

我有这样的方法:

def my_method(id)
  EventMachine.add_periodic_timer(10) do
    my_other_method(id)
  end
end

(显然简化了。)我将如何编写一个 rspec 测试来检查是否my_other_method()被调用?还是这种情况反复发生?当我my_method()从测试中调用时,测试会因为 EM 计时器而冻结。

我见过em-rspecem-spec,但看不到如何在这个特定的测试中使用它们。后者似乎假设您的 EM 计时器是在测试本身中编写的,而不是在您正在测试的代码中?(但也许我误解了?)

4

1 回答 1

0

如果我理解正确,您可以使用这些示例。例如

# 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)

您可以通过上面的链接找到其他示例

于 2013-09-19T16:03:34.023 回答