Awesome! All of these are solid ways to go, Scott. There is currently an "at_exactly" method in the app's spec_helper so replacing that with time_travel seems like a good idea. Thanks for your help.
-Adam On Mon, Jul 13, 2009 at 11:04 AM, Scott Taylor <sc...@railsnewbie.com>wrote: > > On Jul 13, 2009, at 1:46 PM, Scott Taylor wrote: > > > On Jul 13, 2009, at 1:32 PM, Adam Anderson wrote: > > Thanks for the reply, Scott. > > What you describe is what is currently being done. > > now = Time.now > Time.stub!(:now).and_return(foo_time) > do_stuff > Time.stub!(:now).and_return(now) > > However, this is not returning the actual time it is only returning the > time set on the first line. I need Time.now to return to its original > behavior (i.e., returning the current, actual time). > > > Well, every time you create a stub, rspec aliased the method before it > destroys it: > > http://gist.github.com/1ed96143092a02cb727b > > It's ugly, but it will work. > > > Here's another solution, without needing to resort to the library: > > http://gist.github.com/e573cb79073805a632c9 > > Of course, this solution only works if you don't have other stubs on Time. > > Scott > > > > You might also want to check out this library: > > http://github.com/notahat/time_travel/tree/master > > Scott > > > > -Adam > > On Mon, Jul 13, 2009 at 9:58 AM, Scott Taylor <sc...@railsnewbie.com>wrote: > >> >> On Jul 13, 2009, at 12:09 PM, Adam Anderson wrote: >> >> I can't seem to find a good way to do this. If I stub out Time.now in one >>> of my specs but need to return it to its original functionality then can I >>> remove the stub? >>> >>> So I'd like to say something like: >>> Time.stub!(:now).and_return(foo_time) >>> Time.now # => foo_time >>> Time.unstub!(:now) >>> Time.now # => whatever time it actually is >>> >> >> >> Capture it before you stub it: >> >> real_now= Time.now >> >> Time.stub!(:now).and_return a_later_time >> >> Time.stub!(:now).and_return real_now >> >> >>> Is this possible? I noticed $rspec_mocks.reset_all, but obviously I don't >>> want everything to go away, just this one stub. >>> >>> >>> -Adam >>> _______________________________________________ >>> rspec-users mailing list >>> rspec-users@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/rspec-users >>> >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users