[rspec-users] fixtures and associations

Mischa Fierer f.mischa at gmail.com
Thu Dec 18 11:18:04 EST 2008


oops
that last one was supposed to be

http://github.com/ianwhite/pickle/tree/master

similar names

On Thu, Dec 18, 2008 at 8:16 AM, Mischa Fierer <f.mischa at gmail.com> wrote:

>
> http://toolmantim.com/article/2008/10/27/fixtureless_datas_with_machinist_and_sham
>
> http://www.slideshare.net/toolmantim/cucumbers-presentation
>
> http://github.com/tpope/pickler/tree/master
>
>
>
> On Thu, Dec 18, 2008 at 7:24 AM, Daniel Lopes <danielvlopes at gmail.com>wrote:
>
>> I really don't know what's going on with those hell fixtures, and start
>> thinking I will never find... I will try migrate all my fixtures to
>> factory-girl, the only problem are my six hundred examples and no time to
>> change all. Somebody have any link about rspec + factory-girl ? or maybe
>> link to any project on github that use factory-girl and rspec ?
>> Thanks for all help.
>>
>> Atenciosamente,
>>
>> Daniel Lopes    Area Criações
>> Design, Websites e Sistemas Web
>>
>> Visite:  http://www.areacriacoes.com.br/projects
>>           http://blog.areacriacoes.com.br/
>>
>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>> * *
>> 55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501
>>
>>
>> On Thu, Dec 18, 2008 at 12:36 AM, Daniel Lopes <danielvlopes at gmail.com>wrote:
>>
>>> I think I was misunderstood. I am not saying to use create rather than
>>> create! ... In this case, I just use it because will help me with puts for
>>> debug my own error in spec.
>>> In this case a really don't know what is going on, if I use create! I
>>> can't store the value in a var and then try to look what is the message of
>>> the failed attribute with puts.
>>> I using puts to print the error object to debug who is the wrong
>>> attribute.
>>> If I use create! I will have this message:
>>> Validation failed: Property is not valid => and cant use puts to know the
>>> content of @errors
>>>
>>> If I use create and print the result of fixture I will get:
>>>
>>> <ActiveRecord::Errors:0x23af4b0 @errors={"user"=>["não pode ser vazio"]},
>>> @base=#<Property id: 996332877, user_id: 317248456, ...
>>>
>>> And find the problem, it is just for debugging and help me to find where
>>> is the problem, after fix this I will change to create! again.
>>>
>>> --
>>>
>>> Anyone can figure why even property_id and owner_id are defined still
>>> raise "can't be blank" ?
>>>
>>> Thanks a lot for all help.
>>>
>>> Atenciosamente,
>>>
>>> Daniel Lopes    Area Criações
>>> Design, Websites e Sistemas Web
>>>
>>> Visite:  http://www.areacriacoes.com.br/projects
>>>           http://blog.areacriacoes.com.br/
>>>
>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>> * *
>>> 55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501
>>>
>>>
>>> On Thu, Dec 18, 2008 at 12:10 AM, aslak hellesoy <
>>> aslak.hellesoy at gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Dec 18, 2008 at 2:02 AM, Daniel Lopes <danielvlopes at gmail.com>wrote:
>>>>
>>>>> I know... I just don't use create!, in this special case, because it
>>>>> will be more complicate to know what field have the error .
>>>>>
>>>>
>>>> No it won't. The error message tells you what field has the error, and
>>>> if creation is unsuccessful you *need* to know about it. Otherwise you'll
>>>> get tons of false positives. I can't think of a single case where it makes
>>>> sense to use create inside a spec.
>>>>
>>>> Aslak
>>>>
>>>>
>>>>> I'm still scratching my head, my @tenant instance var on spec has
>>>>> values for user_id and owner_id and don't understand why
>>>>> my validates_associated :property raise an error.
>>>>>
>>>>> And if I mock model on model spec will not be a good thing.
>>>>>
>>>>> Atenciosamente,
>>>>>
>>>>> Daniel Lopes    Area Criações
>>>>> Design, Websites e Sistemas Web
>>>>>
>>>>> Visite:  http://www.areacriacoes.com.br/projects
>>>>>           http://blog.areacriacoes.com.br/
>>>>>
>>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>> * * *
>>>>> 55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501
>>>>>
>>>>>
>>>>> On Wed, Dec 17, 2008 at 10:45 PM, aslak hellesoy <
>>>>> aslak.hellesoy at gmail.com> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Dec 18, 2008 at 1:38 AM, Daniel Lopes <danielvlopes at gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> Hello Pat, the error still the same. at errors={"user"=>["can't be
>>>>>>> blank"]}
>>>>>>>
>>>>>>> But if we look on @base we have user:
>>>>>>> @base=#<Property id: 996332877, user_id: 317248456, owner_id:
>>>>>>> 465176508, ... >
>>>>>>>
>>>>>>> And my code is:
>>>>>>> describe Tenant do
>>>>>>>   fixtures :properties, :users ,:owners
>>>>>>>
>>>>>>>   def create_tenant(options = {})
>>>>>>>     record = Tenant.create({
>>>>>>>
>>>>>>
>>>>>> Just a small tip. Always, always use create! in specs. You want an
>>>>>> error to be raised in case creation is unsuccessful, and create doesn't do
>>>>>> that - it just returns false.
>>>>>>
>>>>>> Aslak
>>>>>>
>>>>>>
>>>>>>>       :property => properties(:two),
>>>>>>>       :renters => "value for renters",
>>>>>>>       :guarantor => "value for guarantor",
>>>>>>>       :contact_name => "value for contact_name",
>>>>>>>       :contact_phone => "value for contact_phone",
>>>>>>>       :contact_email => "teste at hosttest.com",
>>>>>>>       :end_date => Date.today,
>>>>>>>       :beginning_date => Date.today,
>>>>>>>       :initial_value => "9.99"
>>>>>>>     }.merge(options))
>>>>>>>   end
>>>>>>>
>>>>>>>   before(:each) do
>>>>>>>     @tenant = create_tenant
>>>>>>>   end
>>>>>>>
>>>>>>>   it "should create a new instance given valid attributes" do
>>>>>>>     properties(:two).valid?
>>>>>>>     p properties(:two).errors
>>>>>>>     # @tenant.errors.should be_empty
>>>>>>>   end
>>>>>>>
>>>>>>> And my fixtures still the same... I don't know what's happening, when
>>>>>>> I try run on console or in browser everything ok... I think is something
>>>>>>> strange with fixtures.
>>>>>>>
>>>>>>> Atenciosamente,
>>>>>>>
>>>>>>> Daniel Lopes    Area Criações
>>>>>>> Design, Websites e Sistemas Web
>>>>>>>
>>>>>>> Visite:  http://www.areacriacoes.com.br/projects
>>>>>>>           http://blog.areacriacoes.com.br/
>>>>>>>
>>>>>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>>>> * * * *
>>>>>>> 55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Dec 17, 2008 at 10:14 PM, Pat Maddox <pergesu at gmail.com>wrote:
>>>>>>>
>>>>>>>> On Wed, Dec 17, 2008 at 2:13 PM, Daniel Lopes <
>>>>>>>> danielvlopes at gmail.com> wrote:
>>>>>>>> > Hello Pat, even I load all my fixtures it still not reading
>>>>>>>> anything from
>>>>>>>> > users.yml ...
>>>>>>>> > I will look at factory_girl but before I need understand what
>>>>>>>> happening.
>>>>>>>> > I try this:
>>>>>>>> > require File.expand_path(File.dirname(__FILE__) +
>>>>>>>> '/../spec_helper')
>>>>>>>> > describe Tenant do
>>>>>>>> >   fixtures :properties, :users , :owners
>>>>>>>> >   def create_tenant(options = {})
>>>>>>>> >     record = Tenant.create({
>>>>>>>> >       :property => properties(:two),
>>>>>>>> >       :renters => "value for renters",
>>>>>>>> >       :guarantor => "value for guarantor",
>>>>>>>> >       :contact_name => "value for contact_name",
>>>>>>>> >       :contact_phone => "value for contact_phone",
>>>>>>>> >       :contact_email => "teste at hosttest.com",
>>>>>>>> >       :end_date => Date.today,
>>>>>>>> >       :beginning_date => Date.today,
>>>>>>>> >       :initial_value => "9.99"
>>>>>>>> >     }.merge(options))
>>>>>>>> >   end
>>>>>>>> >
>>>>>>>> >   before(:each) do
>>>>>>>> >     @tenant = create_tenant
>>>>>>>> >   end
>>>>>>>> >
>>>>>>>> >   it "should create a new instance given valid attributes" do
>>>>>>>> >     p properties(:two).errors
>>>>>>>> >     properties(:two).should be_valid
>>>>>>>> >     # @tenant.errors.should be_empty
>>>>>>>> >   end
>>>>>>>> > end
>>>>>>>>
>>>>>>>> What error are you getting now?  Please post whatever error you're
>>>>>>>> experiencing...when we change this code, I expect a different error,
>>>>>>>> and would not know what it is.  If it's the same, that's strange.
>>>>>>>>
>>>>>>>> Also, I noticed you have
>>>>>>>> p properties(:two).errors
>>>>>>>> properties(:two).should be_valid
>>>>>>>>
>>>>>>>> That's not going to show you anything, because errors don't get
>>>>>>>> added
>>>>>>>> until you call #valid?  So change that to
>>>>>>>>
>>>>>>>> properties(:two).valid?
>>>>>>>> p properties(:two).errors
>>>>>>>>
>>>>>>>> Pat
>>>>>>>> _______________________________________________
>>>>>>>> rspec-users mailing list
>>>>>>>> rspec-users at rubyforge.org
>>>>>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> rspec-users mailing list
>>>>>>> rspec-users at rubyforge.org
>>>>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> rspec-users mailing list
>>>>>> rspec-users at rubyforge.org
>>>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> rspec-users mailing list
>>>>> rspec-users at rubyforge.org
>>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> rspec-users mailing list
>>>> rspec-users at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>
>>>
>>>
>>
>> _______________________________________________
>> 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/20081218/7b428148/attachment-0001.html>


More information about the rspec-users mailing list