You can replace the short version:
it { should_not be_valid }
with the more expisite one:
it "should not be valid" do
expect(@user).not_to be_valid
end
On 24 July 2014 14:52, Roelof Wobben <[email protected]> wrote:
> thanks,
>
> problem solved,
>
> Another question:
>
> Aaron have said he do not like this sort of spec files.
> What is a better style hen and what are AR's
>
> Roelof
>
> Op woensdag 23 juli 2014 22:03:47 UTC+2 schreef Aaron Kromer:
>>
>> That’s still missing an end:
>>
>> describe "when password doesn't match confirmation" do
>> before { @user.password_confirmation = "mismatch" }
>> it { should_not be_valid }# <---- No `end`
>>
>> describe "with a password that's too short" do
>> before { @user.password = @user.password_confirmation = "a" * 5 }
>> it { should be_invalid }end
>>
>>
>>
>> On Wed, Jul 23, 2014 at 2:02 PM, Roelof Wobben <[email protected]>
>> wrote:
>>
>>>
>>> When I change it to :
>>>
>>> describe "when password doesn't match confirmation" do
>>> before { @user.password_confirmation = "mismatch" }
>>> it { should_not be_valid }
>>>
>>> describe "with a password that's too short" do
>>> before { @user.password = @user.password_confirmation = "a" * 5 }
>>> it { should be_invalid }
>>> end
>>>
>>> I still see the old error
>>> Also when I change the indention so it matches the second it.
>>>
>>> Roelof
>>> Op woensdag 23 juli 2014 17:28:23 UTC+2 schreef Aaron Kromer:
>>>>
>>>> You’ll need to provide more details. Fixing that end worked for me.
>>>>
>>>>
>>>> On Wed, Jul 23, 2014 at 8:08 AM, Roelof Wobben <[email protected]>
>>>> wrote:
>>>>
>>>>> hello,
>>>>>
>>>>> I did add a end on rule 80 but still the test fail. Im now on holidays
>>>>> for 2 weeks and will look at this topic after my holidays,
>>>>>
>>>>> Op dinsdag 22 juli 2014 22:57:45 UTC+2 schreef Javix:
>>>>>>
>>>>>>
>>>>>> On 22 Jul 2014, at 19:05, Aaron Kromer <[email protected]> wrote:
>>>>>>
>>>>>> This is one reason I personally dislike this style of specs combined
>>>>>> with AR hooks. It makes more difficult than necessary to troubleshoot.
>>>>>>
>>>>>> As @javix pointed out, line 20
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L20>
>>>>>> has:
>>>>>>
>>>>>> it { should be_valid }
>>>>>>
>>>>>> At this point the subject is what is defined on line 11
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L11>
>>>>>> :
>>>>>>
>>>>>> subject { @user }
>>>>>>
>>>>>> The ivar @user is defined in the before block on line 5
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L5-L9>
>>>>>> :
>>>>>>
>>>>>> before do
>>>>>> @user = User.new(name: "Example User", email: "[email protected]",
>>>>>> password: "foobar", password_confirmation: "foobar")
>>>>>> end
>>>>>>
>>>>>> However, when the spec on line 91
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L91>
>>>>>> runs it calls save in the before block on line 87
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L87>
>>>>>> :
>>>>>>
>>>>>> before { @user.save }
>>>>>>
>>>>>> By using save! it raises an error and confirms that the model was
>>>>>> invalid. Here’s the error:
>>>>>>
>>>>>> Failure/Error: before { @user.save! }
>>>>>> ActiveRecord::RecordInvalid:
>>>>>> Validation failed: Password confirmation doesn't match Password
>>>>>>
>>>>>> Dumping the attributes of @user shows there is a mismatch in the
>>>>>> password:
>>>>>>
>>>>>> {
>>>>>> password: "foobar",
>>>>>> password_confirmation: "mismatch",
>>>>>> }
>>>>>>
>>>>>> This is happening because there is an additional before hook that
>>>>>> runs defined on line 87
>>>>>> <https://github.com/roelof1967/sample_app_nutrious/blob/90dcb47/spec/models/user_spec.rb#L78>.
>>>>>> On a visual inspection, it doesn’t appear that it is initially related
>>>>>> because the indenting is out of sync. The end on line 84 really
>>>>>> applies to the describe on line 81.
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 22, 2014 at 10:13 AM, Javix <[email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tuesday, July 22, 2014 8:23:07 AM UTC+2, Roelof Wobben wrote:
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I do still follow the Hartl tutorial.
>>>>>>>> Am at chapter 6 and according to the manual the test schould be
>>>>>>>> successfull but I see these error messages:
>>>>>>>>
>>>>>>>> Failures:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 1) User when password doesn't match confirmation return va
>>>>>>>> lue of authenticate method with valid password
>>>>>>>>
>>>>>>>>
>>>>>>>> Failure/Error: it { should eq found_user.authenticate(@
>>>>>>>> user.password) }
>>>>>>>>
>>>>>>>>
>>>>>>>> NoMethodError:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> undefined method `authenticate' for nil:NilClass
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> # ./spec/models/user_spec.rb:91:in `block (5 levels) in
>>>>>>>> <top (required)>'
>>>>>>>>
>>>>>>>> You can find my code here : https://github.com/roelof1967/
>>>>>>>> sample_app_nutrious/tree/chapter_six
>>>>>>>>
>>>>>>>> Roelof
>>>>>>>>
>>>>>>>
>>>>>>> @Aaron: as of his gemfile he uses 4.1.4. I don't think save! could
>>>>>>> solve that because the previous example pass (line 20):
>>>>>>>
>>>>>>> it { should be_valid }
>>>>>>>
>>>>>>> The problem is that he is callilng authenticate on Nil.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "rspec" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/rspec/09a1007d-9811-4548-8
>>>>>>> 0f9-e5b0f3f33a17%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/rspec/09a1007d-9811-4548-80f9-e5b0f3f33a17%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> @Aaron: Well done ! I haven’t pick up the indention of do-end block.
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "rspec" group.
>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>>> pic/rspec/3j266FPKVy4/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>>> msgid/rspec/CAKCESdi5aX6_4_8Fguvd0WNA3K%3DrCZy622EoiTHz9G6kK%2
>>>>>> BAG%2BA%40mail.gmail.com
>>>>>> <https://groups.google.com/d/msgid/rspec/CAKCESdi5aX6_4_8Fguvd0WNA3K%3DrCZy622EoiTHz9G6kK%2BAG%2BA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "rspec" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> To view this discussion on the web visit https://groups.google.com/d/
>>>>> msgid/rspec/513a7aec-cca3-4f22-9ec7-d4889b4d0b59%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/rspec/513a7aec-cca3-4f22-9ec7-d4889b4d0b59%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "rspec" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> To view this discussion on the web visit https://groups.google.com/d/
>>> msgid/rspec/8da7033b-95a4-4e61-88a8-bb2ea4a94748%40googlegroups.com
>>> <https://groups.google.com/d/msgid/rspec/8da7033b-95a4-4e61-88a8-bb2ea4a94748%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "rspec" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/rspec/3j266FPKVy4/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rspec/f2c96d10-026a-4fda-ab6d-9eb586d43824%40googlegroups.com
> <https://groups.google.com/d/msgid/rspec/f2c96d10-026a-4fda-ab6d-9eb586d43824%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rspec/CAJGQ%3DvY%3DYEs9TOkvfjV%2BZO5mGwtHSZ0S7X%2BN47%2BXX-U%2B8SFH0Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.