2011年2月 9日

[ruby-list:47859] Re: ユニットテストでの sleep のスキップについて

畠山さま
黒田拓と申します。

(2011年02月09日 03:25), masa wrote:
> また flexmock で
>
> flexstub(Kernel).should_receive(:sleep)
>

> などとしてもだめでした。

この件ですが、対象クラスのオブジェクトその物でstubしたらうまくスキップで
きました。インスタンスメソッドでのsleep呼び出しはKernel.sleepではなく、
Object#sleepを呼んでいるのでしょう。

以下、サンプルです。

---
class C
def wait
sleep(3)
end
end

class TestC < Test::Unit::TestCase
def test_wait
c = C.new
flexstub(Kernel).should_receive(:sleep)
C.new.wait # 3秒待つ
end

def test_wait2
c = C.new
flexstub(c).should_receive(:sleep)
c.wait # 待たない
end
end
---

--
--------------------------------------------------
黒田 拓(くろだ ひらく)
hiraku@xxxxx
http://www.hinet.mydns.jp/
--------------------------------------------------


投稿者 xml-rpc : 2011年2月 9日 14:34
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101879
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。