読者です 読者をやめる 読者になる 読者になる

setterがないclassをFactoryGirlで使うとき

FixtureReplacement

FactoryGirlで自分で作ったclassのFactoryを作りたかったんだけど
setterがないので普通のやり方ではデータをセットできなかった


class

#-*- coding: utf-8 -*-
class Hoge
  attr_reader :name

  def initialize(name)
    @name = name
  end
end

factory

#-*- coding: utf-8 -*-
FactoryGirl.define do
  factory :hoge, class: Hoge do
    name 'ほげ'
  end
end

普通のやり方ってのが上記の方法。


FactoryGirlのcallbackを使ってこうすれば。と教えてもらってやりたいことできた

#-*- coding: utf-8 -*-
FactoryGirl.define do
  factory :hoge, class: Hoge do
    after(:build) do |h|
      h.instance_variable_set(:@name, 'ほげ')
    end
  end
end