似乎很简单,但无法弄清楚如何让它发挥作用。
在model.rb中:
def Model
attr_accessor :width,
:height
def initialize params
@width = params[:width]
@height = params[:height]
...
在工厂文件models.rb
中:
FactoryGirl.define do
factory :model do
height 5
width 7
end
end
在factory方法中设置属性会引发错误wrong number of arguments (0 for 1)
使用Factory.build
在没有Rails的Ruby 1.9.3中工作。 FactoryGirl 4.1。
编辑:更多信息:
使用RSpec:let(:model) { FactoryGirl.build :model }
答案 0 :(得分:31)
这适用于您的班级:
FactoryGirl.define do
factory :model do
skip_create
width 5
height 9
initialize_with { new(attributes) }
end
end
- skip_create
绕过通常在新对象上调用的默认save!
操作。
- attributes
方法使用new
生成可传递给initialize_with
的哈希值。