Thanks Ken, but when I said I was new to RSpec I didn't mean I was THAT new! ;o)
I think people aren't grasping the DataMapper chaining that is at the root of my testing confusion. I managed to come up with a solution that I've outlined here http://pastie.org/1690040 Basically, I mocked out a couple DataMapper::Collections and nested them. I'd love to hear if anyone would have tackled this issue differently. On 18 March 2011 18:01, Ken Chien <ken.ch...@gmail.com> wrote: > When calling get/post/etc, the second optional parameter is a hash > representing the "params" hash. > > So, in order to test the conditional(s) in your controller, you should > write: > get :index, :alpha => true #test the first conditional > > In another example, pass in :beta => true like this: > get :index, :beta => true > > HTH, > Ken > > > 2011/3/18 Sid Wood <sidwo...@gmail.com> > >> Thanks for the replies guys. >> >> My problem is writing a test for >> >> @widgets = @widgets.by_alpha(params[:alpha]) >> >> DataMapper allows you to chain additional criteria on an existing query >> and doesnt execute that query until in is used in the view. So the above >> statement gets baked into the previous default query @widgets = >> Widget.all(:order => [ :name.asc ]). >> >> I'd just like to write a test that confirms the controller is in fact >> calling @widgets.by_alpha(params[:alpha]) when the params[:alpha] is >> present. >> >> Here is the code again so you don't have to scroll to see it >> >> >> def index >> @widgets = Widget.all(:order => [ :name.asc ]) >> if params[:alpha] >> @widgets = @widgets.by_alpha(params[:alpha]) >> elsif params[:beta] >> @widgets = @widgets.by_beta(params[:beta]) >> end >> end >> >> Just to recap, this code is valid and works, I just don't know how to >> write a test for it. >> >> Cheers, >> >> Sid >> >> _______________________________________________ >> 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