ahh, nice makes sense thanks! On Sun, Feb 26, 2012 at 12:25 PM, Andrew Premdas <aprem...@gmail.com> wrote:
> On 26 February 2012 16:36, S Ahmed <sahmed1...@gmail.com> wrote: > >> I'm testing my signup page, and I want to minimize the duplication of >> the fill_in code for filling in the form fields and testing how my page >> reacts when someone forgets to enter input. >> >> fill_in "....", with: "abc123" >> >> Any tricks of doing this? >> >> Say I have 10 fill_in calls, so say I want to test to make sure the form >> fails if any combination of the last 4 fields are missing. >> >> I was thinking of putting the first 6 fill_in calls into a method, and >> then calling that method: >> >> it "should ..." do >> enter_first_6 >> # now enter 3 of the 4 and verify >> end >> >> it "should ..." do >> enter_first_6 >> # now enter a different combination of the last 4 fields >> end >> >> I haven't tested this yet, just brainstorming, any other advise? >> >> I wish things worked liked attribute hashes where you could just call >> .merge and change the default set. >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users@rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > > > Quite a good way to do this is to create a hash that has all your values > and then modify the hash for your errors. So you could do something like > > def good_attrs() > { > :foo => 'foo' > :bar => 'bar > ... > } > end > > then have a fill in method that takes the hash > > def fill_in(attrs) > attrs.each do |k,v| > fill_in k, :with => v > ... > > finally do your errors by > > fill_in(good_attrs(:with => {:foo => nil}) > > or use :except etc. > > You can also put your a spec inside a loop > > %w(foo bar bax).each do |bad_attr| > it "should ... #{bad_attr}..." do > fill_in(good_attrs(:except => {:bad_attr}) > > etc. > > All of top of my head so expect syntax errors, but hopefully enough to be > useful > > All best > > Andrew > > HTH > > Andrew > -- > ------------------------ > Andrew Premdas > blog.andrew.premdas.org > > > _______________________________________________ > 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