gpt4 book ai didi

ruby-on-rails - FactoryGirl — 工厂未注册

转载 作者:数据小太阳 更新时间:2023-10-29 07:50:25 25 4
gpt4 key购买 nike

我已经看过了herehere .我正在加载 factory_girl_rails 正常。

我想这一定是一个语法错误,但是经过一个小时的摸索,真的没能修复它。有人可以帮忙吗? :)

这是我的工厂:

require 'Faker'

FactoryGirl.define do

factory :user do
name { Faker::Name.name }
email { Faker::Internet.email }
password { Faker::Lorem.characters 12 }
end

trait :with_teams do
ignore do
number_of_teams 5
end

after :create do |user, evaluator|
FactoryGirl.create_list :team, evaluator.number_of_teams, :user => user
end
end

end

这是相关规范:

require 'spec_helper'

describe User do
# This works fine
it "can create a team" do
user = FactoryGirl.create :user
team = user.teams.create

team.class.should == Team
end

# The marked line throws argument error
it "can have many teams" do
user = FactoryGirl.create :user, :with_teams, :number_of_teams => 10 # <---
user.teams.length.should == 10
end
end

这是我在运行规范时遇到的错误:

    Failures:

1) User can have many teams
Failure/Error: user = FactoryGirl.create :user, :with_teams, :number_of_teams => 10
ArgumentError:
Factory not registered: User
# ./spec/factories/users.rb:19:in `block (3 levels) in <top (required)>'
# ./spec/models/user_spec.rb:34:in `block (2 levels) in <top (required)>'

最佳答案

特征应该在工厂内部。在您的代码中,:user 工厂和 :with_teams 特征不相关。

require 'Faker'

FactoryGirl.define do

factory :user do
name { Faker::Name.name }
email { Faker::Internet.email }
password { Faker::Lorem.characters 12 }

trait :with_teams do
ignore do
number_of_teams 5
end

after :create do |user, evaluator|
FactoryGirl.create_list :team, evaluator.number_of_teams, :user => user
end
end
end
end

关于ruby-on-rails - FactoryGirl — 工厂未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14357322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com