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 を使用します。私はファブリケーターの宝石を使ってランダムなデータを作成しています。

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

これは、ID モデルの製作者クラスです。サインアップ機能を実行すると、次のエラーが表示されます。

undefined method `name' for nil:NilClass

Fabricate.Attributes_for くらいだと思います。Fabricate :identity を使用すると、エラーは発生しません。

私はこれを解決できませんでした。何か案は?前もって感謝します。

4

1 に答える 1

1

あなたがするとき:

valid_attributes = Fabricate.attributes_for(:identity)

あなたは持っていHashます。

そうするvalid_attributes[:email]か、Openstructを使用します。

于 2013-03-06T14:13:59.047 に答える