首页 > 解决方案 > FactoryBot - 显示我的对象用户的所有字段

问题描述

我的工厂:

  factory :user_blocked, class: User do
    name { 'Test' }
    login { 'mylogin' }
    uid { 'mylogin' }
    password { 'test' }
    password_confirmation { 'test' }
    locked_at { nil }
    trait :lock do
      locked_at { Time.now.utc }
    end
    association :customer, factory: :customer
  end

在我的测试中,我创建了一个新用户:

let(:user) { create(:user_blocked) }

但是在我的对象中,用户不会出现我的字段locked_at

为什么会这样?

标签: ruby-on-railsrspecfactory-bot

解决方案


首先,正如比利建议的那样,您的工厂名为:user_blocked,其次,您的locked_at值设置为名为 的“特征” :lock

因此,要创建一个具有“locked_at”值的用户,请将您的代码更改为:

let(:user) { create(:user_blocked, :lock) }

这是FactoryBot“特征”功能描述的链接: https ://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#traits


推荐阅读