Time.is - ザ・ワールド!時よ止まれ

http://blog.jayfields.com/2007/11/ruby-timeis.html

Time.nowがからむテストを書くのはとても難しい。時はすでに進んでいるから、単純な文字列比較とかではテストは書けない。だったらどうするか?時を止めるのだ!

Time.is(Time.now) do  # ザ・ワールド!時よ止まれ
  Time.now # => Thu Oct 05 00:00:00 -0400 2006
  sleep 2
  Time.now # => Thu Oct 05 00:00:00 -0400 2006
end
# そして時は動き出す

Time.isは時刻を固定して、Time.nowがその時刻を返すように偽装する仕組み。ブロック中は偽装が働き、ブロックを抜けたらTime.nowは通常動作に戻る。

彼のブログは読んでてとてもおもしろいw英語だけど。