如何使用FactoryGirl与在initialize方法中采用哈希的模型?

B S*_*ven 11 ruby rspec initialization factory-bot

看似简单,但无法弄清楚如何使其工作.

在model.rb中:

def Model
  attr_accessor :width,
                :height

  def initialize params
    @width = params[:width]
    @height = params[:height]
    ...
Run Code Online (Sandbox Code Playgroud)

在工厂文件中models.rb:

FactoryGirl.define do
  factory :model do
    height 5
    width 7
  end
end
Run Code Online (Sandbox Code Playgroud)

在工厂方法中设置属性会引发错误 wrong number of arguments (0 for 1)

在没有Rails的情况下使用Ruby 1.9.3,使用Factory.build.FactoryGirl 4.1.

编辑:更多信息:

使用RSpec: let(:model) { FactoryGirl.build :model }

Zac*_*emp 31

这适用于你的班级:

FactoryGirl.define do

  factory :model do
    skip_create

    width 5
    height 9

    initialize_with { new(attributes) }
  end
end
Run Code Online (Sandbox Code Playgroud)

- skip_create绕过save!通常在新对象上调用的默认操作.

- 该attributes方法生成一个可以传递给new使用的哈希initialize_with.