Rails Sample_App,测试错误

时间:2014-09-26 17:35:45

标签: ruby-on-rails ruby testing

因此遵循Hartl示例应用程序教程,并且在关于关系规范的某些测试中遇到一些麻烦。

在我的spec文件中

describe "follow methods" do

    before(:each) do
    @follower = User.create!( :name => "Example User", 
        :email => "user@example.com",
        :password => "foobar",
        :password_confirmation => "foobar"
    )
    @followed = User.create!( :name => "Example User", 
        :email => "user_five@example.com",
        :password => "foobar",
        :password_confirmation => "foobar"
    )
    @attr = { :followed_id => @followed.id }
    @relationship = @follower.relationships.create!(@attr)

    end

我知道这与书中的不一样,但我没有使用FactoryGirl。

当使用此块进行测试时,我的@attr读取错误;

Failure/Error: @attr = { :followed_id => @followed.id }
 NoMethodError:
   undefined method `id' for #<Hash:0x00000108d0b2a0>

但是,当我在我的控制台中运行此块时,它可以正常工作。 id是根据@attr设置的,我可以在@followed上调用.id。

任何帮助都将一如既往地受到赞赏!

1 个答案:

答案 0 :(得分:0)

根据您的错误,Hash不存在方法id

要访问它,您可以使用:

@attr = { :followed_id => @followed['id'] }

问题是你试图做@followed.id