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 に答える