Questions tagged «factory-bot»

factory_bot是Ruby的宝石,可让您快速定义每个模型的原型,并请求具有对于手头测试很重要的属性的实例。

8
如何使用Factory Girl生成回形针附件?
我的模型人有很多图像,其中图像有一个名为data的回形针附件字段,缩写形式显示在下面: class Person has_many :images ... end class Image has_attached_file :data belongs_to :person ... end 人员必须至少附有一张图像。 使用FactoryGirl时,我的代码类似于以下内容: Factory.define :image do |a| a.data { File.new(File.join(Rails.root, 'features', 'support', 'file.png')) } a.association :person end Factory.define :person do |p| p.first_name 'Keyzer' p.last_name 'Soze' p.after_create do |person| person.assets = [Factory.build(:image, :person => person)] end # …

11
如何在Factory girl中创建has_and_belongs_to_many关联
鉴于以下 class User < ActiveRecord::Base has_and_belongs_to_many :companies end class Company < ActiveRecord::Base has_and_belongs_to_many :users end 您如何为公司和用户(包括双向关联)定义工厂?这是我的尝试 Factory.define :company do |f| f.users{ |users| [users.association :company]} end Factory.define :user do |f| f.companies{ |companies| [companies.association :user]} end 现在我尝试 Factory :user 可能不足为奇的是,由于工厂彼此递归地使用彼此定义自己,因此会导致无限循环。 更令人惊讶的是,我在任何地方都没有提到如何执行此操作,是否有定义所需工厂的模式,或者我做的是根本错误的事情?

16
跳过关于Factory Girl和Rspec的回调
我正在使用创建后回调回调来测试模型,该回调仅在测试时仅在某些情况下运行。如何跳过/运行工厂的回调? class User < ActiveRecord::Base after_create :run_something ... end 厂: FactoryGirl.define do factory :user do first_name "Luiz" last_name "Branco" ... # skip callback factory :with_run_something do # run callback end end

3
FactoryGirl中的build和create方法之间有什么区别?
《工厂女郎》简介描述了FactoryGirl.build()和之间的区别FactoryGirl.create(): # Returns a User instance that's not saved user = FactoryGirl.build(:user) # Returns a saved User instance user = FactoryGirl.create(:user) 我仍然不了解两者之间的实际差异。有人可以举一个您想使用一个而不是另一个的示例吗?谢谢!
94 ruby  factory-bot 


5
如何使用has_many关联在FactoryGirl中建立工厂
有人可以告诉我是否只是以错误的方式进行设置吗? 我有以下具有has_many.through关联的模型: class Listing < ActiveRecord::Base attr_accessible ... has_many :listing_features has_many :features, :through => :listing_features validates_presence_of ... ... end class Feature < ActiveRecord::Base attr_accessible ... validates_presence_of ... validates_uniqueness_of ... has_many :listing_features has_many :listings, :through => :listing_features end class ListingFeature < ActiveRecord::Base attr_accessible :feature_id, :listing_id belongs_to :feature belongs_to :listing end 我正在使用Rails …

4
Faker在factory_girl中使用时正在生成重复数据
我正在尝试使用Faker gem将一些虚假数据填充到工厂中: Factory.define :user do |user| user.first_name Faker::Name::first_name user.last_name Faker::Name::last_name user.sequence(:email) {|n| "user#{n}@blow.com" } end 但是,尽管我希望这会产生具有不同的first_name和last_names的用户,但每个用户都是相同的: >> Factory(:user) => #<User id: 16, email: "user7@blow.com", created_at: "2011-03-18 18:29:33", updated_at: "2011-03-18 18:29:33", first_name: "Bailey", last_name: "Durgan"> >> Factory(:user) => #<User id: 17, email: "user8@blow.com", created_at: "2011-03-18 18:29:39", updated_at: "2011-03-18 18:29:39", first_name: "Bailey", …

5
如何在factory_bot中定义数组/哈希?
我正在尝试编写一个测试,该测试模拟Dropbox的REST服务的一些返回值,该返回值将我的数据以嵌套哈希的形式返回给Array。 由于返回结果是一个内部有has的数组,因此我很难弄清楚如何编写Factory代码。会怎么办? Factory.define :dropbox_hash do ?? end Dropbox数据如下所示: ["/home", {"revision"=>48, "rev"=>"30054214dc", "thumb_exists"=>false, "bytes"=>0, "modified"=>"Thu, 29 Dec 2011 01:53:26 +0000", "path"=>"/Home", "is_dir"=>true, "icon"=>"folder_app", "root"=>"app_folder", "size"=>"0 bytes"}] 我想在我的RSpec中进行如下工厂调用: Factory.create(:dropbox_hash)

9
工厂女孩创建绕过我的模型验证
我正在使用Factory Girl在模型/单元测试中为组创建两个实例。我正在测试该模型以检查对.current的调用是否根据如下所述的expiry属性仅返回“当前”组... describe ".current" do let!(:current_group) { FactoryGirl.create(:group, :expiry => Time.now + 1.week) } let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } specify { Group.current.should == [current_group] } end 我的问题是,我已经在模型中进行了验证,该模型可以检查新组的有效期是否在今天的日期之后。这会在下面引发验证失败。 1) Group.current Failure/Error: let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } ActiveRecord::RecordInvalid: Validation failed: Expiry is before todays …

6
FactoryGirl和多态关联
该设计 我有一个通过多态关联属于某个配置文件的用户模型。我选择此设计的原因可以在这里找到。总而言之,该应用程序有许多用户具有完全不同的配置文件。 class User < ActiveRecord::Base belongs_to :profile, :dependent => :destroy, :polymorphic => true end class Artist < ActiveRecord::Base has_one :user, :as => :profile end class Musician < ActiveRecord::Base has_one :user, :as => :profile end 选择此设计后,我很难进行良好的测试。使用FactoryGirl和RSpec,我不确定如何以最有效的方式声明关联。 第一次尝试 factory.rb Factory.define :user do |f| # ... attributes on the user # this …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.