I'm testing the validation<br>validates_length_of :password, :within => 5..40<br><br>In this case I should be receiving a failure but I'm not :(<br><br> it "should require a password within the range of 5..40 characters" do
<br> person = create(:password => 'a') <br> person.password.should_not be_nil <br> person.should validate_length_of(:password, 5..40) <br> end<br><br>I'm an amature tester, would you tell me how I should verify?
<br>I haven't fully grasped setting testing goals<br><br><div><span class="gmail_quote">On 5/27/07, <b class="gmail_sendername">David Chelimsky</b> <<a href="mailto:dchelimsky@gmail.com">dchelimsky@gmail.com</a>> wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On 5/27/07, Andrew WC Brown <<a href="mailto:omen.king@gmail.com">omen.king@gmail.com
</a>> wrote:<br>> it "should require a password within the range of 5..40 characters" do<br>> person = create(:last_name => "ruby_tuesday")<br>> person.password.should_not be_nil
<br>> (5..40) === person.password.length.should<br>> end<br>><br>> Its true, it really works, tell all your friends!<br><br>How does that verify that a person will reject a password length of 4 or 41?<br>
<br>><br>><br>> On 5/27/07, Sam Aaron <<a href="mailto:sam.maillists@googlemail.com">sam.maillists@googlemail.com</a> > wrote:<br>> ><br>> > On 27 May 2007, at 8.31 pm, Andrew WC Brown wrote:<br>
> > ><br>> > > I thought this would work:<br>> > > person.password.length.should == (5..40)<br>> > ><br>> ><br>> > I think that in this case, you want to use the === operator when
<br>> > comparing a number with a range. Instead of trying to see if both of<br>> > the objects (the number and the range) are the same, the === operator<br>> > checks to see if the number is within the range.
<br>> ><br>> > Also, make sure you surround your range with parenthesis (which you<br>> > are already doing), and put the range on the left hand side of the<br>> > === operator for it to work. Have a look at this quick irb session
<br>> > for an example of what I mean:<br>> ><br>> > >> (10..50) == 15<br>> > => false<br>> > >> (10..50) === 15<br>> > => true<br>> > >> 10..50 === 15<br>
> > ArgumentError: bad value for range<br>> > from (irb):6<br>> > >> 15 === 10..50<br>> > ArgumentError: bad value for range<br>> > from (irb):7<br>> > >> 15 === (10..50)
<br>> > => false<br>> > >><br>> ><br>> > Hope this helps,<br>> ><br>> > Sam<br>> ><br>> > ---<br>> > <a href="http://sam.aaron.name">http://sam.aaron.name</a>
<br>> ><br>> ><br>> > _______________________________________________<br>> > rspec-users mailing list<br>> > <a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br>> >
<a href="http://rubyforge.org/mailman/listinfo/rspec-users">http://rubyforge.org/mailman/listinfo/rspec-users</a><br>> ><br>><br>><br>> _______________________________________________<br>> rspec-users mailing list
<br>> <a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br>> <a href="http://rubyforge.org/mailman/listinfo/rspec-users">http://rubyforge.org/mailman/listinfo/rspec-users</a><br>><br>_______________________________________________
<br>rspec-users mailing list<br><a href="mailto:rspec-users@rubyforge.org">rspec-users@rubyforge.org</a><br><a href="http://rubyforge.org/mailman/listinfo/rspec-users">http://rubyforge.org/mailman/listinfo/rspec-users</a>
<br></blockquote></div><br>