【问题标题】:random data production in feature steps特征步骤中的随机数据生成
【发布时间】:2013-03-06 13:46:56
【问题描述】:
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

我使用菠菜 gem 来创建功能步骤。上面的代码标识了我的功能步骤。我还使用 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。如果我使用 Fabricate :identity,它不会出错。

我无法解决这个问题。有任何想法吗?提前致谢。

【问题讨论】:

  • 如果有答案,请不要忘记接受答案

标签: ruby-on-rails ruby minitest fabrication-gem spinach


【解决方案1】:

当你这样做时:

valid_attributes = Fabricate.attributes_for(:identity)

你有一个Hash

也可以这样做:valid_attributes[:email] 或使用 Openstruct。

【讨论】:

  • 我像“valid_attributes[:email]”一样使用。但是这一次,它给出了“nil:NilClass 的未定义方法`[]'”错误。
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多