2013-03-06 94 views
1
class Spinach::Features::Signup < Spinach::FeatureSteps 

    attr_accessor :valid_attributes 
    before do 
    valid_attributes = Fabricate.attributes_for(:identity) 
    #@valid_attributes = Fabricate :identity 
    end 

    step 'I am a visitor' do 
    true 
    visit root_path 
    end 

    step 'I am on the landing page' do 
    current_path.must_equal root_path 
    end 

    step 'I follow signup link' do 
    click_link('signup_link') 
    end 

    step 'I fill name with my name' do 
    fill_in 'name', with: valid_attributes.name 
    end 

    step 'I fill email with my email' do 
    fill_in "email", with: valid_attributes.email 
    end 
end 

我使用菠菜寶石創建特徵步驟。上面的代碼是我的功能步驟。我也使用minitest進行測試框架。我使用製造商gem創建隨機數據。特徵步驟中的隨機數據生產

require "ffaker" 
Fabricator(:identity) do 
    name   {Faker::Name.name} 
    email   {Faker::Internet.email} 
    password_digest "ChtUIGTiBvrm6v6R4PX6sO3netSuN3eW0AbFmXblXvgKM5Z8sFUKy" 
end 

這是我的製造者類的身份模型。當我運行申請功能,我看到一個錯誤:

undefined method `name' for nil:NilClass 

我認爲它是關於Fabricate.Attributes_for。如果我使用製造:身份,它不會給出錯誤。

我無法解決這個問題。有任何想法嗎?提前致謝。

+0

請不要忘記接受答案,如果它回答 – apneadiving 2013-03-06 14:51:48

回答

1

當你這樣做:

valid_attributes = Fabricate.attributes_for(:identity) 

你已經有了一個Hash

所以:valid_attributes[:email]或使用Openstruct。

+0

我使用像「valid_attributes [:電子郵件]」。但是這一次,它爲「nil:NilClass」錯誤提供了「未定義的方法'[]'。 – miyamotomusashi 2013-03-07 07:11:19

+0

對不起。有效。非常感謝你 – miyamotomusashi 2013-03-07 07:45:02