[rspec-users] fixtures and associations

Daniel Lopes danielvlopes at gmail.com
Wed Dec 17 20:02:31 EST 2008


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 .
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20081217/ca94c149/attachment-0001.html>


More information about the rspec-users mailing list