Sha256: 1cc32178287bd82b643c4c0569eca721fc5f52a1b9c7d74449ad84323a20912b
Contents?: true
Size: 1.8 KB
Versions: 28
Compression:
Stored size: 1.8 KB
Contents
require "spec_helper" describe "declaring attributes on a Factory that are private methods on Object" do before do define_model("Website", :system => :boolean, :link => :string, :sleep => :integer) FactoryGirl.define do factory :website do system false link "http://example.com" sleep 15 end end end subject { FactoryGirl.build(:website, :sleep => -5) } its(:system) { should == false } its(:link) { should == "http://example.com" } its(:sleep) { should == -5 } end describe "assigning overrides that are also private methods on object" do before do define_model("Website", :format => :string, :y => :integer, :more_format => :string, :some_funky_method => :string) Object.class_eval do private def some_funky_method(args) end end FactoryGirl.define do factory :website do more_format { "format: #{format}" } end end end after do Object.send(:undef_method, :some_funky_method) end subject { FactoryGirl.build(:website, :format => "Great", :y => 12345, :some_funky_method => "foobar!") } its(:format) { should == "Great" } its(:y) { should == 12345 } its(:more_format) { should == "format: Great" } its(:some_funky_method) { should == "foobar!" } end describe "accessing methods from the instance within a dynamic attribute that is also a private method on object" do before do define_model("Website", :more_format => :string) do def format "This is an awesome format" end end FactoryGirl.define do factory :website do more_format { "format: #{format}" } end end end subject { FactoryGirl.build(:website) } its(:more_format) { should == "format: This is an awesome format" } end
Version data entries
28 entries across 23 versions & 3 rubygems