[rspec-users] requests: is it possible to put the fill_in's into a method?
S Ahmed
sahmed1020 at gmail.com
Sun Feb 26 22:16:07 UTC 2012
ahh, nice makes sense thanks!
On Sun, Feb 26, 2012 at 12:25 PM, Andrew Premdas <apremdas at gmail.com> wrote:
> On 26 February 2012 16:36, S Ahmed <sahmed1020 at 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 at 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 at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20120226/e5ec39e8/attachment.html>
More information about the rspec-users
mailing list