【问题标题】:How do I achieve conditional behavior of FactoryGirl based on traits如何根据特征实现 FactoryGirl 的条件行为
【发布时间】:2015-02-18 13:27:08
【问题描述】:

我有一个用户工厂。我希望默认情况下确认用户。但鉴于 unconfirmed 的特征,我不希望它们被确认。

虽然我有一个基于实现细节而不是抽象的有效实现,但我想知道如何正确地做到这一点。

factory :user do
  after(:create) do |user, evaluator|
    # unwanted implementation details here
    unless FactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)
      user.confirm!
    end
  end
  trait :unconfirmed do
  end
end

我正在考虑这些方面的事情。但这不起作用并产生 未定义的方法`未确认'

factory :user do
  ignore do
    unconfirmed = false
  end

  after(:create) do |user, evaluator|
    user.confirm! unless evaluator.unconfirmed
  end

  trait :unconfirmed do
    unconfirmed = true
  end
end

【问题讨论】:

    标签: ruby testing factory-bot


    【解决方案1】:

    你快到了:

    factory :user do
      transient do
        unconfirmed false
      end
    
      trait :unconfirmed do
        unconfirmed true
      end
    
      after(:create) do |user, evaluator|
        user.confirm! unless evaluator.unconfirmed
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2021-05-25
      • 2013-10-31
      • 2021-11-14
      • 2015-08-07
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多