Rails model association collections allow you to do nifty things like:
article.comments.find(:all, :conditions => {:created_at > 1.day.ago})
Has anyone found a good way to mock this up? I'm currently doing this:
@comment1 = mock_model(Comment)
comments = mock(Array)
comments.stub!(:find).and_return([EMAIL PROTECTED])
@article = mock_model(Article)
@article.stub!(:comments).and_return(comments)
I don't like this, because of that intermediate 'comments' object, whose
only purpose is so that i can stub the chained method. I'd like to do
something like this:
@comment1 = mock_model(Comment)
@article = mock_model(Article, :comments => mock(Array, :find =>
[EMAIL PROTECTED]))
But trying this causes an error: "Mock 'Array' received unexpected
message :find with (:all, ...)" because you can't inline stubs with
ordinary `mock`. I can replace it with `mock_model`, but this feels unclean.
Has anyone come across a good 'best-practice' solution to this problem?
TIA,
Paul Sadauskas
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users