On 7/18/07, court3nay <[EMAIL PROTECTED]> wrote: > Any chance of some prettier syntax for that?
There's always a chance. What do you propose? > > ------- > Courtenay > > On Jul 18, 2007, at 2:30 PM, "David Chelimsky" <[EMAIL PROTECTED]> > wrote: > > > On 7/18/07, Paul <[EMAIL PROTECTED]> wrote: > >> 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? > > > > You can use the stub() method instead of mock() to inline method > > stubs: > > > > @article = mock_model( > > Article, :comments => stub(Array, :find => [EMAIL PROTECTED]) > > ) > > > > The mock() method works differently because it does different stuff w/ > > the Hash under the covers. > > > >> > >> TIA, > >> Paul Sadauskas > >> > >> _______________________________________________ > >> 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