Carlos Rodriguez escreveu:
Thanks to everyone that responded to my question.
Here is what I ended up doing to make the spec pass:
time_now = Time.now
Time.stub!(:now).and_return(time_now)
lambda { @post.publish! }.should change(@post,
:published_at).from(nil).to(time_now)
I have thought on this approach after I realized that ActiveRecord would
not probably populate this field using SQL since it doesn't know per
itself about published_at attribute and I realized that you probably
used something like "published_at = Time.now" on an after_save or
before_save hook.
I would suggest you this approach but then, in the middle of the message
I realized it wouldn't be a good idea to mock the Time class, since it
wouldn't test what you want, I thought...
Unless you really care if the implementation uses Time.now to fill the
published_at field (instead of a SQL now(), or some trigger...), the
other alternative would be less dependent on implementation...
And looking at the complete solution, I really don't think it is clearer
or more compact to read :)
But I guess you were intrigued on how to do that :) It happens to me
sometimes... Today, I've spent the morning reading Rspec and Webrat
internals just to figure out that the error I was getting was really a
silly mistake (I was using assert_not_contain before requesting a URL).
Sometimes, things just bother us because we actually want to know how
something works... I was really intrigued about what describe/context/it
did from behind the scenes. And even more intrigued in trying to
understand how webrat integration works. Every time I had a problem, I
blessed the fact that I didn't understand the internals, but, although
knowing the internals better helps to solve all sort of confusion, the
problem usually is something simpler :)
But, at least, it is good when we solve all the mystery, right? :)
Good night,
Rodrigo.
__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users